Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.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_Linux_Jar_Raspberry Pi_Manifest - Fatal编程技术网

Java 运行jar不会';行不通

Java 运行jar不会';行不通,java,linux,jar,raspberry-pi,manifest,Java,Linux,Jar,Raspberry Pi,Manifest,我们正试图用我们的类文件制作一个jar,但不知何故它不起作用。jar文件的创建可以与 jar -cvfm client.jar Mainfest.txt /home/pi/Desktop/Client/*.class 但是,当我们尝试运行时,它会出现一个classnodefferor。我们的应用程序使用2个属性文件——一个用于数据库,另一个用于log4j 包含的目录和一个子目录如下所示: 参见第1和第2张图片 当我们尝试执行jar文件时,会显示以下错误: (参见链接图3) 通常,当我们运

我们正试图用我们的类文件制作一个jar,但不知何故它不起作用。jar文件的创建可以与

jar -cvfm client.jar Mainfest.txt /home/pi/Desktop/Client/*.class
但是,当我们尝试运行时,它会出现一个classnodefferor。我们的应用程序使用2个属性文件——一个用于数据库,另一个用于log4j

包含的目录和一个子目录如下所示: 参见第1和第2张图片

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

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

清单文件如下所示(参见链接图5)


我们尝试了不同的解决方案,如改变路径、忽略环境(-D)等,但我们确实无法找出我们做错了什么。

这里有几个问题:

  • 最好在清单中明确提到每个包含的JAR文件——像*这样的通配符工作得不太好
  • 您不能在JAR文件中使用绝对路径,而是使用相对路径
  • 因此,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/*
    

    您是否检查了您拥有的log4jjar文件是否确实包含类文件?您是否尝试将CLASSPATH环境变量设置为每个jar文件