2016-11-28 177 views
0

我对Eclipse Run/Debug配置类路径和构建java项目路径感到困惑。我对他们的不同点有一些想法,但不完全确定我是正确的。请纠正我,如果我错了或丢失任何东西....Eclipse类路径vs构建路径

  1. 当你右键点击一个Java项目,并点击配置构建路径。它实际上是修改的.classpath文件该项目的....对我的理解,jar文件在这个文件中,列出...是需要编译项目库。
  2. 在Eclipse的Run/Debug Configurations窗口下,有一个Classpath选项卡。这个标签下的Jar文件需要执行这个项目。

Q1。我对么?任何额外的信息可以添加? Q2302。有一次,我编译了项目,并开始了......它运行良好,直到我使用了其中的一个函数,系统抛出了classNotFound异常..在我添加了一个缺少的jar到构建路径并且该函数起作用再次。所以,我很困惑。如果构建路径用于编译项目....这意味着我不应该能够编译并在第一个地方开始项目。但事实并非如此。我在这里错过了什么吗?为什么不应该将缺少的jar添加到类路径而不是构建路径?

+0

[Class Path和Build Path之间有什么区别]可能的重复(http://stackoverflow.com/questions/3529459/what-is-the-difference-between-class-path-and-build-path ) –

回答

0

是的,“.classpath”文件中指定的类和jar在编译项目的源代码时使用,但在项目的类的运行配置中默认使用那些相同的类和jar。

有时候,有些类在运行项目时是必需的,但在编译项目时实际上并不需要。这有不同的原因,但通常意味着被引用的类不是直接在源代码中引用的,而是通过某种基于反射的过程的间接引用。

+0

谢谢你回答我的问题,卡尔先生。如果我添加一个jar:ABC到项目构建路径.....这是否意味着它将在我运行/调试项目时自动包含?或者我需要手动执行(在eclipse env下)。你也可以给我一个例子,当lib只会用于运行/调试配置,而不是构建路径。 – MIT

+0

同样,构建路径中的资源将自动用于项目中类的运行配置。关于间接引用,这是通过Reflection完成的。查找“java反射”。 –