运行jar不起作用

时间:2014-11-17 16:49:52

标签: java linux jar raspberry-pi manifest

我们正试图用我们的类文件制作一个jar但不知何故它不起作用。使用

创建jar文件可以正常工作
jar -cvfm client.jar Mainfest.txt /home/pi/Desktop/Client/*.class

但是当我们尝试运行时,它会附带一个classnodefferror。我们的应用程序使用2个属性文件 - 一个用于数据库,一个用于log4j。

目录和包含的一个子目录如下所示: 见link - image nr。 1和2

image nr 1

image nr 2

当我们尝试执行jar文件时,它会显示以下错误: (见链接图3)

image 3

通常,当我们运行它时,我们键入(参见链接图像4)

image 4

清单文件看起来像这样(见链接图5)

image 4

我们尝试过不同的解决方案,比如改变路径,忽略环境(-D)等等,我们真的无法弄清楚我们做错了什么。

1 个答案:

答案 0 :(得分:0)

这里有几个问题:

  1. 最好在清单中明确提及每个包含的JAR文件 - 像* isnt工作得很好的通配符
  2. 您不能在JAR文件中使用绝对路径 - 而是使用相对路径
  3. 所以,1)将Manifest.txt更改为

    Main-Class: Client
    Class-Path: . includes/log4j-1.2.17.jar includes/mysql-connector-java-5.1.33-bin.jar includes/sqlitejdbc-v056.jar includes/RXTXcomm-2.2pre2.jar  includes/..... (repeat for all pi4j JAR files)
    

    并且,2)将所需的所有JAR文件(包括RXTXcomm-2.2pre2.jar和pi4j JAR)复制到include /子目录中,并将命令更改为

    jar -cvfm client.jar Manifest.txt *.class *.properties includes/*