我有一个 java 项目。我想将它导出到可运行的 jar 文件。
我使用eclipse来做到这一点。
但是当我运行创建的 jar 文件时,我收到Error ~ file not found : config\file.xml
了(系统找不到指定的路径)。
如何导出文件夹以在任何地方运行成功的 jar 文件?
如果您不需要在 jar 之外配置配置,只需将其包含在其中并使用 getClass().getClassLoader().getResourceAsStream("config.xml") 之类的东西(如果它位于“root”级别) " 装在罐子里
听起来您的应用程序正在使用文件系统中的相对路径查找配置文件。为了使 jar 完全自给自足,必须修改代码以在类路径中查找配置文件,并且该文件必须包含在 jar 中。
为此,必须将打开文件的代码更改为使用 Class#getResourceAsStream()
而不是使用File
对象。
如果您的项目目录中有一个配置文件夹,并且有一个要从中读取的文件,您也必须将此文件夹复制到您的 jar 文件的目录中
我建议您使用 ant 或其他构建系统。这是一个关于 ant 的简短教程:
http://ant.apache.org/manual/tutorial-HelloWorldWithAnt.html
在 ant 构建脚本中使用 xml 创建 jar 文件非常容易。我已经做过很多次了:
<target name="jar" depends="compile">
<mkdir dir="${jar.dir}"/>
<jar destfile="${jar.dir}/${ant.project.name}.jar" basedir="${classes.dir}">
<manifest>
<attribute name="Main-Class" value="${main-class}"/>
</manifest>
</jar>
</target>
其他人可能会建议maven之类的,但实际上它们都是不错的选择。从 Eclipse 等 IDE 导出确实不是一个可行的长期解决方案。