我正在尝试运行另一个人创建的已经存在的eclipse项目 在将其导入eclipse并尝试运行As-> Java Application之后,它失败了,因为它无法在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
这不起作用。我理解这不是解决问题的理想方式,但我原本以为它会解决这个问题(我有更多的窗口而不是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方法。运行 - &GT;设置 - &GT; Classpath-&GT;用户条目 - &gt;高级并简单地添加了bin / resources文件夹。这完美,程序找到属性文件,一切都很好。但是,我不满意我以前的努力失败了,没有我真正理解为什么。似乎每个人都应该工作。
此外,我想确保以这样的方式修复此问题,即我检入的代码捕获它,以便后续用户不必执行相同的步骤。因此我的解决方案并不十分令人满意,因为我不确定实际的代码片段是如何更改的,因此无法验证是否已签入“修复”。
你如何找到eclipse用于其类路径的实际定义?我曾以为这将是build.xml类路径定义,但似乎根本不是这样。
答案 0 :(得分:18)
在Eclipse中,有一个构建类路径和一个运行时类路径。还有构建输出位置,默认情况下为bin
。您不希望将资源直接添加到bin
,因为Eclipse可以在执行干净构建时删除其内容。您需要做的是在项目中添加一个resources
文件夹,以包含您希望包含在构建输出中的任何非Java文件。
要在构建输出(resources
)中包含此bin
文件夹的内容,请右键单击该项目,然后选择“属性”。在项目属性中,选择 Java构建路径部分,然后选择源选项卡。
使用添加文件夹... 按钮从项目中选择resources
文件夹,然后确定以保存更改。此时,Eclipse将在构建时自动将resources
中的所有内容复制到bin
。
答案 1 :(得分:3)
这是一个maven项目:
答案 2 :(得分:2)
按照以下步骤修复此问题:
答案 3 :(得分:0)
右键单击 Package Explorer 中的项目名称,选择属性,选择 Java Build Path 在左侧,选择右侧的源标签,单击添加文件夹,浏览项目的目录以选择资源文件夹或您需要添加到eclipse类路径的任何内容,点击确定,再次点击确定。完成。
答案 4 :(得分:0)
如果您不希望将属性文件复制到bin文件夹,则可以尝试以下操作:
右键单击您的项目,选择 Build Path ,然后选择 Configure Build Path ..
选择库标签
选择添加课程文件夹。
添加您的资源文件夹。