当前位置: 首页 > 知识库问答 >
问题:

执行简单jar文件时类找不到错误

云景焕
2023-03-14

我正在学习Java,并试图用Swing制作一个非常简单的程序。我使用命令行java工具。

import javax.swing.*;
import java.awt.*;

public class MyClass {

    public static class MyActLst implements java.awt.event.ActionListener {
       public void actionPerformed(java.awt.event.ActionEvent e)
       {
           System.out.println("Action occured.\n");
       }
    }

    public static void main(String[] args) {
        JFrame f = new JFrame("Example");
        f.setSize(640,480);
        f.setLayout(null);

        JButton b = new JButton("OK");
        b.setBounds(0,0,100,100);
        b.setText("Test");

        MyActLst myActLst = new MyActLst();
        b.addActionListener(myActLst);
        f.add(b);

        f.setVisible(true);
    }
}
Exception in thread "main" java.lang.noClassDefFoundError: MyClass$MyActLst
at MyClass.main(MyClass.java:25)[...]
Manifest-Version: 1.0
Main-Class: MyClass

这是我第一次尝试制作.jar文件,所以如果这是一个琐碎的问题,我很抱歉。

共有1个答案

景才英
2023-03-14

编译后,您有两个文件myclass$myactlst.class和myclass.class。您必须整合这两个文件。您可以使用“jar cmf myclass.mf myclass.jar*.class myclass.java”

子类在不同文件中生成。

 类似资料:
  • 我已经使用netbeans制作了jar文件,使用Build和Clean项目选项。我得到了.jar文件,现在当我执行它一小段时间后,cmd窗口出现,并给出一个错误:“Could not find or load main class while executing jar file” 但是,如果我使用命令提示符Java-jar执行jar,它可以正常工作 Netbeans的输出为: 而在jar文件中,

  • jar是用“meta-inf”文件夹中的清单文件创建的。清单文件(为了查看目的删除了类路径中的一些jar条目): 文件夹结构: 我正在命令提示符下使用'java-jar application.jar mypkg.main'。 有人能告诉我是什么造成的错误和如何解决它吗?

  • 我有独立的应用程序,它绑定在可执行的中。在可执行的清单文件中,有一个class-path条目,其中列出了所有依赖的(包括所有的日志实现jar)。这个可执行jar还包含文件。 使用这种结构,当我使用简单的命令运行应用程序时,应用程序在正确的日志记录下运行良好。但这里的主要问题是,要更改日志级别,需要打开jar文件,而我不能要求客户端这样做。所以我将放在了jar外部,但现在所有日志记录都发生在控制台上

  • 问题内容: 我在程序中使用以下代码来加载属性文件: 该代码在Eclipse中运行良好。然后,将程序打包到一个名为MyProgram.jar的JAR中,然后运行它,第二行得到了NullPointerException。JAR不包含属性文件,它们都位于同一目录中。我正在使用Maven创建JAR。我该如何解决这个问题? 更新:我不想将属性文件添加到JAR中,因为它将在部署时创建。 问题答案: Balus

  • null 这里出了什么问题。

  • 问题内容: 第一:我意识到这个问题应该很简单,很多人似乎都经历过。但是,看来我的问题可能与现有职位 略有 不同。 我正在使用NetBeans编译Java应用程序。构建完成后,输出将正确进入dist \文件夹。jar文件存在于此。如果我转到命令行,请导航到该文件夹​​,然后调用以下命令: java -jar Prosperity.jar 一切正常。显然,该应用程序的名称为Prosperity。以下命