0

我正在尝试将我的程序导出为可运行的 jar,打包必要的库(Apache POI)。.jar 已创建,但它不起作用。使用这些库进行部署是否有问题?因为程序本身在 Eclipse 中运行良好。

4

2 回答 2

2

有以下策略。

  1. 创建你的罐子。把它放到选择的目录。将应用程序的所有依赖项放在那里。创建脚本(shell 脚本、批处理文件等,具体取决于您的平台),其中java命令行要么是硬编码的,要么是生成的。该行必须包含类路径,例如 java -cp myapp.jar;poi.jar com.company.MyMain
  2. 创建确实可运行的 jar,即可以使用类似命令执行的 jar java -jar myapp.jar。如果您的应用程序具有依赖项,则此 jar 必须具有MANIFEEST.MF使用属性定义类路径的文件Class-Path
  3. 将所有类和所有依赖项打包到一个大 jar 文件中。

显然,所有这些操作都应该通过自制脚本或可用的构建工具之一实现自动化。

于 2013-03-14T18:47:56.020 回答
2

在这种情况下要问自己几个问题:

  • 程序在哪里失败?控制台中是否有任何错误?您是否从命令行 ( java -jar myJAR.jar) 运行以便可以看到控制台输出?
  • 好的,所以你得到了读取文件的 NullPointerException。读取的文件是在 JAR 中,还是在哪里?程序如何知道读取的文件在哪里?
  • JAR 的打包方式真的有问题,还是你的代码在文件中定位和读取的方式有问题?也许您的代码假定了从 JAR 运行时无法解析的相对位置。
于 2013-03-14T21:15:44.940 回答