我试图用两个类创建一个jar文件,其中一个类依赖于外部jar。我有一个目录,其中包含manifest.txt,一个包含外部jar RXTXcomm.jar的lib文件夹,以及一个名为Arduino的文件夹,其中包含我的两个类SendValue.java和SerialClass.java。
首先,我使用以下方法编译我的课程:
javac arduino\*.java
这将创建3个新文件,SerialClass $ 1.class,SerialClass.class和SendValue.class。要制作jar文件,我正在运行:
jar -cfm send.jar manifest.txt arduino\*.class lib\rxtxcomm.jar
这很好用。然后我尝试使用以下命令运行该文件:
java send.jar
我收到错误:
Could not find or load main class send.jar
我也尝试使用以下命令运行它,并得到了同样的错误:
java -cp . send.jar
manifest.txt中唯一的一行是:
Main-Class: Arduino.SendValue
我的课程在Eclipse中运行良好,所以我假设他们不是问题所在。 SendValue.java有一行:
public static void main(String[] ag) {
正如它应该的那样。
有什么想法吗?
答案 0 :(得分:0)
您希望使用以下代码运行jar
:
java -jar send.jar
此外,除非您想使用OneJar等工具对嵌套jar进行一些魔术,否则应从lib\rxtxcomm.jar
命令中删除jar
,并将以下行添加到清单中
Class-Path: lib\rxtxcomm.jar .
答案 1 :(得分:0)
如果您要使用命令行或终端运行单个java可执行文件,请使用
java -jar send.jar
如果你使用像Netbeans,IntelliJ IDEA或Eclipse这样的IDE进行编译和测试会更好,因为他们意味着做这些事情并且在做与人脑不同的步骤时更可靠