Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 可运行JAR文件导出_Java_File_Export - Fatal编程技术网

Java 可运行JAR文件导出

Java 可运行JAR文件导出,java,file,export,Java,File,Export,我有一个java项目。我想把它导出到可运行的jar文件中 我使用eclipse来做这件事 但是,当我运行创建的jar文件时,收到错误~file not found:config\file.xml,系统无法找到指定的路径 如何导出文件夹以在任何位置运行success jar文件?我建议您使用ant或其他构建系统。以下是有关ant的简短教程: 在ant构建脚本中使用xml创建jar文件非常容易。我已经做过很多次了: <target name="jar" depends="compile">

我有一个java项目。我想把它导出到可运行的jar文件中

我使用eclipse来做这件事

但是,当我运行创建的jar文件时,收到错误~file not found:config\file.xml,系统无法找到指定的路径


如何导出文件夹以在任何位置运行success jar文件?

我建议您使用ant或其他构建系统。以下是有关ant的简短教程:

在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导出确实不是一个可行的长期解决方案。

我建议您使用ant或其他构建系统。以下是有关ant的简短教程:

在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导出确实不是一个可行的长期解决方案。

听起来您的应用程序正在使用文件系统中的相对路径查找配置文件。为了使jar完全自给自足,必须修改代码以在类路径中查找配置文件,并且该文件必须包含在jar中


为此,必须将打开文件的代码更改为使用ClassgetResourceAsStream,而不是使用文件对象。

听起来您的应用程序正在使用文件系统中的相对路径查找配置文件。为了使jar完全自给自足,必须修改代码以在类路径中查找配置文件,并且该文件必须包含在jar中


为此,必须将打开文件的代码更改为使用ClassgetResourceAsStream,而不是使用文件对象。

如果项目目录中有一个配置文件夹,并且有一个文件要读取,您也必须将此文件夹复制到jar文件的目录中

如果您的项目目录中有一个配置文件夹,并且有一个文件要从中读取,那么您也必须将此文件夹复制到jar文件的目录中

如果您不需要在jar之外配置配置,如果它位于jar中的根包级别,则只需将其包含在其中,并使用诸如getClass.getClassLoader.getResourceAsStreamconfig.xml之类的内容进行访问,如果它位于jar中的根包级别,只需将其包含在其中,并使用类似getClass.getClassLoader.getResourceAsStreamconfig.xml的内容进行访问

这将如何帮助解决实际问题,即代码希望在文件系统中找到文件?Jim,我很抱歉。我应该直接回答这个问题。我会确保我遵守SO规则,不会回答超出直接问题范围的问题。这将如何帮助解决实际问题,即代码希望在文件系统中找到文件?Jim,我很抱歉。我应该直接回答这个问题。我会确保我遵守SO规则,不会回答直接问题之外的问题。是的,我知道,我试过了。没关系。但我只想有一个jar文件,并在没有配置文件夹的任何地方使用它。我可以将配置文件夹导出到jar文件中吗?谢谢,我知道,我试过了,没关系。但我只想有一个jar文件,并在没有配置文件夹的任何地方使用它。我可以将配置文件夹导出到jar文件中吗?thanksIt在本地文件夹中时运行正常。如何将配置文件放入jar?我已经为绝对路径和重新导出编辑了.classpath。结果在时间之前,当它在本地文件夹中时运行正常。如何将配置文件放入jar?我已经为绝对路径和重新导出编辑了.classpath。结果比以前好