【发布时间】:2014-09-29 12:42:30
【问题描述】:
我正在尝试运行由另一个人创建的已经存在的 Eclipse 项目。
将其导入 eclipse 并尝试 Run As->Java Application 后,由于在 bin/resources 中找不到 .properties 文件而失败
我打印出了 eclipse 使用的类路径
logger.info(System.getProperty("java.class.path"));
果然,它包括 bin 和所有 lib/*.jar,但不包括 bin/resources。将 .properties 文件复制到 bin 中可以使程序工作,但我想了解如何将目录添加到 eclipse 类路径中。
我尝试了几件事,但都没有成功
export CLASSPATH=$CLASSPATH:/home/me/programdir/bin/resources
这不起作用。我知道这不是解决问题的理想方法,但我认为它可以解决问题(我的 windows 比 linux 背景更多,所以也许我错过了 linux 中系统变量的一些细微差别)
接下来,我尝试在 Eclipse 的 Run->Configurations 对话框中修改 VM 参数
-classpath "/home/me/programdir/bin/resources"
这里也没有运气,这让我很困惑,因为我确信它会起作用并且对于需要在类路径中添加一个额外文件夹的特定程序来说似乎是一个合理的解决方案。
接下来我尝试直接修改 build.xml。我找到了定义类路径的部分,并为 bin/resources 添加了我自己的行,如下所示:
<path id="classpath">
<fileset dir="./bin/resources" includes="**/*.properties"/>
<fileset dir="./lib" includes="**/*.jar" />
</path>
这也失败了。这让我更加困惑,所以我注释掉了整个路径元素,而记录器打印出来的类路径没有改变,所以很明显,无论 eclipse 使用什么类路径,它肯定不是这个。在我看来,这似乎是最好的解决方案,如果它起作用的话:可以检查 build.xml 文件并添加正确的添加内容,以防止未来的用户遇到问题。
接下来我尝试了 IDE 方法。运行-> 配置-> 类路径-> 用户条目-> 高级,然后简单地添加 bin/resources 文件夹。效果很好,程序找到了属性文件,一切都很好。但是,我很不满意我之前的努力在我没有真正理解原因的情况下失败了。似乎每个人都应该工作。
此外,我想确保以这样一种方式解决此问题,即它被我签入的代码捕获,以便后续用户不必执行相同的步骤。因此,我的解决方案不是很令人满意,因为我不确定实际更改了哪些代码,因此无法验证“修复”是否已签入。
您如何找到 eclipse 用于其类路径的实际定义?我原以为会是 build.xml 类路径定义,但似乎根本不是这样。
【问题讨论】: