当前位置: 首页 > 面试题库 >

尝试运行.jar文件时出现NullPointerException

欧阳狐若
2023-03-14
问题内容

我刚刚开始学习Java,并且只知道少量的代码,但是,这仍然是一个简单的程序。它更多是一个恶作剧程序,但主要只是为了测试我是否可以创建一个jar文件。

这是代码:

import java.awt.*;  
import java.awt.event.*;  
import java.lang.*;  
import java.util.Random;  
public class randommouse {  
    public static void main(String[] args) {  
        for (int i=1; i<1000; i++) {  
            Random rand = new Random();  
            int w = rand.nextInt(1024) + 1;  
            int h = rand.nextInt(768) + 1;  
            int t = rand.nextInt(2000) + 1;  
            try {  
                Robot r = new Robot();  
                r.mouseMove(w,h);  
                Thread.sleep(t);  
            } catch (AWTException e) {}  
            catch (InterruptedException e) {}  
            catch (NullPointerException e) {}  
        }  
    }  
}

我将其保存到名为的文件中randommouse.java,然后使用进行编译

javac randommouse.java

这有效,当我使用运行它时

java randommouse

它也可以正常工作。

因此,然后我尝试创建一个jar文件。我使用命令

jar cvf randommouse.jar randommouse.class

而且有效。之后,我双击jar文件,它出现一个错误Java Exception
所以我在cmd中运行它

java -jar randommouse.jar

并得到这个错误

F:\Java>java -jar randommouse.jar
Exception in thread "main" java.lang.NullPointerException
        at sun.launcher.LauncherHelper.getMainClassFromJar(LauncherHelper.java:3
99)
        at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:463)

F:\Java>

我是否需要提出一个论点?如果是,我应该在哪里提出?

预先谢谢
山姆


问题答案:

从JDK文档:

为了使此选项起作用,JAR文件的清单必须包含以下格式的行:

Main-Class: classname

在这里,类名标识具有公共静态void main(String []
args)方法的类,该方法用作应用程序的起点。有关使用Jar文件和Jar文件清单的信息,请参见Jar工具参考页和Java教程的Jar跟踪。

使用此选项时,JAR文件是所有用户类的源,而其他用户类路径设置将被忽略。



 类似资料:
  • 问题内容: 我的java程序打包在jar文件中,并使用外部jar库bouncy castle。我的代码可以正常编译,但是运行jar会导致以下错误: 线程“主”中的异常java.lang.SecurityException:清单主要属性的无效签名文件摘要 我在Google上搜索了一个多小时,一直在寻找解释,却发现价值不大。如果有人之前曾见过此错误并可以提供帮助,则我有义务。 问题答案: 此处列出的解

  • 问题内容: 我已经将一个Java项目编译到一个Jar文件中,并且在运行它时遇到了问题。 当我跑步时: 我收到以下错误 该类文件不在jar的根目录中,因此我尝试更改主类的路径以使其与该类文件的路径匹配,并且遇到相同的问题。 我应该展平文件结构吗?如果是这样,我该怎么做。如果有任何用途,我正在使用Ant来构建Jar文件。 更新 这是jar的内容以及相关的Ant部分,我将我工作的公司的名称更改为“ or

  • 我下载了以下链接: http://www.java2s.com/Code/JarDownload/java/java-json.jar.zip 然后,我将jar添加到构建路径:右键单击项目 我能够使用java-json库而不会出现任何错误。然而,当我将项目导出到一个jar时,没有选项将java-json引用库作为jar的一部分。所以我假设通过将库添加到构建路径,我不必导出外部罐(无论如何也没有选项

  • 运行hadoop jar文件时出现以下错误 线程“main”java中出现异常。lang.ClassNotFoundException:hdfs: 位于java。网URLClassLoader 1美元。在java上运行(URLClassLoader.java:366) 。网URLClassLoader 1美元。在java上运行(URLClassLoader.java:355) 。安全AccessC

  • 当我尝试运行一个简单的JUnit 5测试(eclipse)时,我遇到了以下错误: 这是我的: 我尝试过类似问题的一些建议,比如这个github问题和其他问题,但是没有成功。我还在学习JUnit,所以我可能会忘记一些显而易见的东西。

  • 我正在尝试运行这个Java GUI应用程序,但我不确定如何让它运行。该项目位于:https://gitee.com/gangshushu/v7/tree/master/admon_gui/one-jar. 我最初的尝试是: javaone-jar-ant-task-0.97.jar 但我最后犯了一个错误: 在one-jar-ant-task-0.97中没有主清单属性。罐子 做一些搜索周围,未能运行