这是一个典型的错误消息,但没有搜索结果可以帮助我。我正在尝试构建和运行某人编写的 java 工具。
我收到以下错误:
Could not find the main class: ConnJKSEngine. Program will exit.
这是我的清单:
Main-Class: ConnJKSEngine
我也将其更改为
Main-Class: ConnJKSEngine.ConnJKSEngine
和
Main-Class: ConnJKSEngine/ConnJKSEngine
(它最后有一个换行符)。没有任何区别
这就是我构建 jar 的方式:
javac -cp ConnJKSEngine/ ConnJKSEngine/ConnJKSEngine.java
jar -cvfm ConnJKSEngine.jar ConnJKSEngine/ConnJKSEngineManifest ConnJKSEngine/*.class
chmod +x ConnJKSEngine.jar
这就是我尝试运行 jar 的方式(尝试了所有这些):
java ConnJKSEngine.jar
java -jar ConnJKSEngine.jar
java -cp ConnJKSEngine.jar ConnJKSEngine
这是由给出的目录jar -tf ConnJKSEngine.jar
META-INF/
META-INF/MANIFEST.MF
ConnJKSEngine/ConnJKSEngine.class
ConnJKSEngine/ConnJKSEngine_GenKey.class
ConnJKSEngine/ConnJKSEngine_GetPubKey.class
ConnJKSEngine/ConnJKSEngine_Operation.class
ConnJKSEngine/ConnJKSEngine_PrivDec.class
ConnJKSEngine/ConnJKSEngine_Sign.class
我已更改ConnJKSEngine
目录并执行java ConnJKSEngine
,它正确打印了使用信息。这使我确保主类存在并且可以执行。所以建造罐子一定有问题,对吧?
所以我继续将 jar 解压到不同的目录 ( unzip ConnJKSEngine.zip
) 并得到如上所示的目录结构。如果我进入ConnJKSEngine
目录并执行java ConnJKSEngine
,它会正确执行。
在这里我被卡住了:该类在那里,它在子目录中并且可以执行。清单似乎是正确的。由于我不是java程序员,所以我现在就来这里。知道会发生什么吗?(注:Linux系统)
编辑源代码可以在这里找到:https ://github.com/Javex/JKSEngine