带有Apache POI的Runnable jar

时间:2013-03-14 18:14:26

标签: apache-poi java

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

2 个答案:

答案 0 :(得分:2)

有以下策略。

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

答案 1 :(得分:2)

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

  • 程序在哪里失败?控制台中有错误吗?您是否从命令行(java -jar myJAR.jar)运行,以便可以看到控制台输出?
  • 好的,所以你得到了一个读取文件的NullPointerException。读取文件是在JAR内部,还是在哪里?程序如何知道读取文件的位置?
  • JAR的打包方式确实存在问题,还是代码定位和读取文件的方式?也许您的代码假定从JAR运行时无法解析的相对位置。