Java jar: A JNI error has occurred, please check your installation and try again


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.類

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM