我正在尝试运行另一个人创建的现有Eclipse项目。
将其导入Eclipse后,尝试以运行为->Java应用程序的方式运行,但由于在bin / resources中找不到.properties文件,因此失败了。
我打印出了Eclipse正在使用的类路径。
logger.info(System.getProperty("java.class.path"));
果然,它包括bin和所有的lib/*.jars,但不包括bin/resources。将.properties文件复制到bin中可以使程序工作,但我想知道如何将目录添加到Eclipse类路径中。
我尝试了几种方法,但都没有成功。
export CLASSPATH=$CLASSPATH:/home/me/programdir/bin/resources
这行不通。我知道这不是一个理想的解决问题的方法,但我本以为它会解决问题。(我更多地了解Windows而不是Linux系统变量的细微差别)
接下来,我尝试修改Eclipse中运行->配置对话框中的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类路径定义,但事实并非如此。