如何从类文件创建.jar可执行文件?我在网上发现了非常简单的指令,包括创建一个清单,然后从终端凝结它。无法创建工作.jar
复杂因素,然而,我编程这个东西的方式,类文件是它自己的客户端...它在编译器中工作正常,但我认为这可能以某种方式更改标准清单?我的程序看起来大致是这样的:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
public class Schedule implements ActionListener {
public static void main(String[] args) {
Schedule gui = new Schedule();
}
public Schedule() {
public void actionPerformed(ActionEvent event) {
//...
}
//...
private class CheckboxListener implements ItemListener {
//...
}
}
}
我编这个计划程序后,编译器中加入了一堆其他的类目录的,所以在目录中现在有Schedule.class,一些所谓的Schedule$1.class
,Schedule$CheckboxListener.class
和一堆其他类(格式类似于Schedule$CheckboxListener.class
)。
简单的说,我想知道我的清单文件应该是什么样子。现在,我有:
Main-Class: Schedule
但这不会产生工作的.jar文件。我究竟做错了什么?
当你说“工作”时,你期待什么?你如何调用JAR文件,它在做什么?你是否收到错误消息? – Gian 2013-05-14 03:09:14
当我双击Schedule.jar时,我收到以下错误消息: 线程“main”中的异常java.lang.NoClassDefFoundError:安排Schedule $ CheckBoxListener \t。(Schedule.java:49) \t在Schedule.main(Schedule.java:8) 造成的:抛出java.lang.ClassNotFoundException:计划$ CheckboxListener \t在java.net.URLClassLoader的$ 1.run(URLClassLoader.java: 202) \t在java.security.AccessController.doPrivileged(本机方法) \t在java.net.URLClassLoader.findClass(URLClassLoader.java:190) \t在java.lang.ClassLoader.loadClass(ClassLoader.java:306) ... –
user2379931
2013-05-14 03:15:23
您必须包含javac编译器生成的那些额外的类。 $表示内部类。 – 2013-05-14 03:25:35