経由でjavaprojektを実行しようとしました
java -jar myproject.jar
そして得た:
Failed to load Main-Class manifest attribute from myproject.jar
どうすればいいの?Netbeans を使用して、ほぼ箱から出して瓶を取り出しました
わかりました、マニフェスト ファイルのように見えるものを見つけたので、以下に示します。
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Created-By: Apache Maven
Built-By: someone
Build-Jdk: 1.7.0_25
わかりましたので、ここにクラスがあります:
public class Starter {
private static Control c;
/**
*
* @param
*/
public static void main(String [ ] args) {
Control c = new Control();
}
public static Control getC() {
return c;
}
}
ただし、瓶を無視しても、試してみると
java -cp myproject.jar control.Starter
classNotFoundException が発生します
ただし、Netbeans 内から開始すると問題なく動作します。
どうやら、最初にプロジェクトを作成したときに、main を含むデフォルト クラスを取得したようです。私は今、そのクラスを削除し、クリーンアップして再度ビルドしました。
これは、マニフェストが次のようになったことを意味します。
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Created-By: Apache Maven
Built-By: someone
Build-Jdk: 1.7.0_25
Main-Class: default.Starter
1 つには、Starter がパッケージのデフォルトではなく、明らかにパッケージ コントロールにあるため、これがどのように発生したのか疑問に思います。
別の場合、私はまだ得ます:
Failed to load Main-Class manifest attribute from myproject.jar
誰かが私を助けることができますか?
さて、java -cp などでコンパイルしようとすると、例外が発生します。
Exception in thread "main" java.lang.UnsupportedClassVersionError: control/Starter : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: control.Starter. Program will exit.
誰かが私にこれだけ答えてもらえますか?
これは通常、プロジェクトのバグですか、それとも他の場所のバグですか? つまり、おそらく正しいパスを使用して、同じプロジェクトを別のコンピューターでビルドしようとすると、成功する可能性が高くなりますか? 実行可能なjarにすることができないコードを書くことができた可能性はありますか?