これは典型的なエラー メッセージですが、検索結果が役に立ちません。誰かがコーディングした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 の作成に何か問題があるに違いありませんよね?
そこで、jar を別のディレクトリ ( ) に解凍し、unzip ConnJKSEngine.zip
上記のディレクトリ構造を取得しました。ConnJKSEngine
ディレクトリに移動しjava ConnJKSEngine
て実行すると、正しく実行されます。
ここで私は立ち往生しています:クラスはそこにあり、サブディレクトリにあり、実行できます。マニフェストは正しいようです。私は Java プログラマーではないので、ここに来ました。何が起こっているのでしょうか?(注: Linux システム)
編集ソースはここにあります: https://github.com/Javex/JKSEngine