java -verion 和 javac -version 版本不一致
E:\temp\eclipseWorkSpace>java -jar TASTS.jar
Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/swt/widgets/Decorations
Caused by: java.lang.ClassNotFoundException: org.eclipse.swt.widgets.Decorations
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: MainForm. Program will exit.
E:\temp\eclipseWorkSpace>
E:\temp\eclipseWorkSpace>java -jar tasts.jar
Error: A JNI error has occurred, please check your installation and try again (java 版本不一致)
Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/swt/widgets/Decorations
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
at java.lang.Class.getMethod0(Class.java:3018)
at java.lang.Class.getMethod(Class.java:1784)
at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526)
Caused by: java.lang.ClassNotFoundException: org.eclipse.swt.widgets.Decorations
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 7 more
E:\temp\eclipseWorkSpace>
E:\temp\eclipseWorkSpace>java -jar tasts.jar
no main manifest attribute, in tasts.jar
在 cmd 下執行 java -jar xxx.jar 包名.類名
報錯:
no main manifest attribute, in xxx.jar
產生原因:
一般情況下,java 打包成 jar 包需要在 MANIFEST.MF 中指定 Main-Class 項,以便運行 java -jar xxx.jar 時找到對應的主類。因為-jar的含義就是后面跟的jar包是有main class可獨立運行,所以需要在打包成jar包時指定這個類;否則,需要在執行的時候手動指定。
解決方案:
在運行jar包時,使用 -cp / --classpath 來手動指定。
eg:java -cp xxx.jar com.fresher.xxx.類