【问题标题】:Runnable JAR file export可运行的 JAR 文件导出
【发布时间】:2012-11-23 15:48:40
【问题描述】:

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

我用eclipse来做。

但是当我运行创建的 jar 文件时,我收到Error ~ file not found : config\file.xml(系统找不到指定的路径)。

如何导出文件夹以在任何地方运行成功的 jar 文件?

【问题讨论】:

    标签: java file export


    【解决方案1】:

    如果您不需要在 jar 之外配置配置,只需将其包含在其中并使用 getClass().getClassLoader().getResourceAsStream("config.xml") 之类的东西(如果它位于级别) jar 中的“root”包

    【讨论】:

      【解决方案2】:

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

      为此,必须将打开文件的代码更改为使用Class#getResourceAsStream(),而不是使用File 对象。

      【讨论】:

      • 在本地文件夹中运行正常。如何将配置文件放入 jar 中?,我已经编辑了 .classpath 的绝对路径并重新导出。结果喜欢在时间之前
      【解决方案3】:

      我建议您使用 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 导出确实不是一个可行的长期解决方案。

      【讨论】:

      • 这将如何帮助解决实际问题,即代码期望在文件系统中找到一个文件?
      • 吉姆,我很抱歉。我应该直接回答这个问题。我将确保我遵守 SO 规则,并且不会在手头直接问题的范围之外回答。
      【解决方案4】:

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

      【讨论】:

      • 是的,我知道,我试过了。没关系。但我只想拥有 jar 文件并在没有配置文件夹的任何地方使用它。我可以将配置文件夹导出到 jar 文件中吗?谢谢
      猜你喜欢
      • 2014-05-06
      • 2012-12-06
      • 2018-04-13
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      • 2015-09-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多