首页 > 编程语言 >Java jar: A JNI error has occurred, please check your installation and try again

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

时间:2023-11-06 12:03:28浏览次数:54  
标签:lang again Java URLClassLoader please ClassLoader jar java Class

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

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

 



标签:lang,again,Java,URLClassLoader,please,ClassLoader,jar,java,Class
From: https://blog.51cto.com/emanlee/8203544

相关文章

  • 切换JDK版本时修改JAVA_HOME环境变量不生效
     Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\Environment           解决方法: (1)检查环境变量Path;(2)删除java.exe,javaw.exe,javaws.exe 在修改JDK的安装目录的情况下会出现失效的时候,因为jdk在安装的时候自己在path中添加了......
  • Java去除字符串中空格的方法详解
    1、方法str.trim();str.replace("","");str.replaceAll("","");str.replaceAll("+","");str.replaceAll("\\s*","");\\s*可以匹配空格、制表符、换页符等空白字符的其中任意一个。 2、示例packagetest;publicc......
  • JAVA SWT的MessageBox对话框
    Referencedjar:org.eclipse.swt.win32.win32.x86_64_3.113.0.v20191204-0601.jar importorg.eclipse.swt.widgets.MessageBox; SWT有不同类型的对话框。有些对话框具有特殊的属性。MessageBoxmessageBox=newMessageBox(shell,SWT.OK|SWT.CANCEL);if(messageBox.open(......
  • java中的重排序和volatile关键字
    一、内存模型基础1、内存模型描述的是程序中各变量(线程共享变量)的访问规则,以及在实际计算机系统中将变量存储到内存和从内存读取出变量这样的低层细节。2、Jvm系统中存在一个主内存(MainMemory或JavaHeapMemory),Java中所有变量都储存在主存中,对于所有线程都是共享的。3、每......
  • javascript中的时间格式化的方法
     javascript中的时间格式化的方法 Date.prototype.format=function(format){varo={"M+":this.getMonth()+1,//month"d+":this.getDate(),//day"h+":this.getHours(),//hour&quo......
  • 探索 Java 8 中的 Stream 流:构建流的多种方式
    当我们处理集合数据时,往往需要对其进行各种操作,如过滤、映射、排序、归约等。在Java8中引入的Stream流为我们提供了一种更加简洁和灵活的方式来处理数据。上述情况都是流对集合进行操作的,但是对于流的创建操作还是不太了解,其实流的创建不止是使用集合进行创建,还可以基于值、数......
  • 带你理解 Java 8 的函数式接口使用和自定义
    函数式接口是Java8引入的一种接口,用于支持函数式编程。函数式接口通常包含一个抽象方法,可以被Lambda表达式或方法引用所实现。在本文中,我们将深入探讨函数式接口的概念、用途以及如何创建和使用函数式接口。什么是函数式接口函数式接口是只包含一个抽象方法的接口。但是默认方......
  • 解锁多核处理器的力量:探索数据并行化在 Java 8 Stream 中的应用
    在Java8中引入的Stream为集合数据的处理带来了现代化的方式,而数据并行化则进一步提升了处理速度,充分发挥了多核处理器的优势。本篇博客将详细介绍数据并行化在Java8Stream中的应用,以及如何利用并行流处理大量数据。什么是数据并行化数据并行化是指将任务分解成多个子任务,......
  • 做基于spring的管理系统设计Please come to me for
    主要内容:我们是一群经验丰富的程序员,精通多种技术开发,包括基于springboot、基于Vue、基于ssm框架、java、安卓开发以及微信小程序等。希望通过我们的经验帮助你完成理想的作品(毕业设计作品)。下面就来说一说,制作基于Spring的毕业设计需要综合运用所学的知识和技能,包括Java编程语言、......
  • Java 获取自定义注解 字段值 及 注解值
    自定义注解packagecom.jianmu.bean.annotation;importjava.lang.annotation.ElementType;importjava.lang.annotation.Retention;importjava.lang.annotation.RetentionPolicy;importjava.lang.annotation.Target;/**[email protected]......