gpt4 book ai didi

java - .jar 文件在 IntelliJ 中工作,但在 IntelliJ 之外运行 .jar 时会出现 JVM 错误

转载 作者:行者123 更新时间:2023-12-01 18:45:52 27 4
gpt4 key购买 nike

我是 Java 和 Stack Overflow 的新手,我在 IntelliJ 中创建了一个 Java 项目,并通过构建工件和构建 .jar 文件制作了一个 .jar 文件,以便在没有 IntelliJ 的情况下运行它。该程序使用机器人通过按 Windows 和 R 键打开“运行”窗口,将鼠标移动到我的计算机分辨率(1366 x 768)的框内部,单击,键入 cmd 并按 Enter 键,将鼠标移动到单击 cmd 窗口,然后键入 whoami 并按 Enter 键。这在 IntelliJ 内部工作得很好,但在外部我收到此错误:

Java 虚拟机启动器错误:发生 JNI 错误,请检查您的安装并重试。

当我单击“确定”时,会打开另一个文本框:

Java 虚拟机启动器发生java异常。

我的 .java 文件中的代码是:

import java.awt.AWTException;
import java.awt.event.KeyEvent;
import java.awt.Robot;
import java.awt.event.InputEvent;

public class RobotTest {
public static void main(String[] args) throws Exception {
Robot r = new Robot();
while (true) {
r.keyPress(KeyEvent.VK_WINDOWS);
r.keyPress(KeyEvent.VK_R);
r.keyRelease(KeyEvent.VK_WINDOWS);
r.mouseMove(300,620);
r.mousePress(InputEvent.BUTTON1_DOWN_MASK);
r.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
Thread.sleep(100);
r.keyPress(KeyEvent.VK_C);
r.keyPress(KeyEvent.VK_M);
r.keyPress(KeyEvent.VK_D);
r.keyPress(KeyEvent.VK_ENTER);
Thread.sleep(150);
r.mouseMove(400,200);
r.mousePress(InputEvent.BUTTON1_DOWN_MASK);
r.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
r.keyPress(KeyEvent.VK_W);
r.keyPress(KeyEvent.VK_H);
r.keyPress(KeyEvent.VK_O);
r.keyPress(KeyEvent.VK_A);
r.keyPress(KeyEvent.VK_M);
r.keyPress(KeyEvent.VK_I);
r.keyPress(KeyEvent.VK_W);
r.keyPress(KeyEvent.VK_ENTER);
r.mouseMove(400, 200);
Thread.sleep(20000);
}
}
}

Thread.sleep(20000);代码末尾是为了防止它陷入无限循环,从而允许我停止程序。

我的 java 是最新的,IntelliJ 也是最新的,我看不出我做错了什么。

最佳答案

假设完整错误如下所示:

Error: A JNI error has occurred, please check your installation and try again Exception in thread "main" java.lang.UnsupportedClassVersionError: robot/RobotTest has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0

我想说您的系统中的 JDK/JRE 安装可能存在冲突。正如错误所述,.jar 是由较新版本的 Java 运行时(IntelliJ IDEA 使用的版本)编译的,而您现在使用的是旧版本。

  • 检查在 IntelliJ IDEA 中运行您的项目所使用的 JDK 版本(文件 | 项目结构 | 项目 SDK)。就我而言,是 JDK 12。
  • 在命令提示符中运行以下命令:
java -version
javac -version
  • 如果不同,请卸载旧环境并重新运行 JAR。

在我的例子中,java 是版本 1.8,而 javac 是版本 12。我从系统中卸载了 1.8 JRE,确保 java -version 也给了我 12,然后重新运行 java -jar path\to\artifact.jar 来自 cmd 成功。

关于java - .jar 文件在 IntelliJ 中工作,但在 IntelliJ 之外运行 .jar 时会出现 JVM 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59843301/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com