why I can't run jar successfully?

zhanghw 2001-04-26 05:30:00
I'm reading <the java tutorial>.
I create a file named SimpleBean.java :
---------------------------------------------------------------
package sunw.demo.simple;
import java.awt.*;
import java.io.Serializable;
public class SimpleBean extends Canvas implements Serializable{
private Color color = Color.green;
public Color getColor(){
return color;
}
public void setColor(Color newColor){
color = newColor;
repaint();
}
public void paint(Graphics g) {
g.setColor(color);
g.fillRect(20, 5, 20, 30);
}
public SimpleBean(){
setSize(60,40);
setBackground(Color.red);
}
}
--------------------------------------------------------

and a file named manifest.tmp :
--------------------------------------------------------
Name:SimpleBean.class
Java-Bean:True
--------------------------------------------------------

and javac SimpleBean.java successfully.
but when i run the command:
jar cfm SimpleBean.jar manifest.tmp SimpleBean.class
i get an error like this:
java.io.IOException: invalid header field
at java.util.jar.Attributes.read(Attributes.java:353)
at java.util.jar.Manifest.read(Manifest.java:159)
at java.util.jar.Manifest.<init>(Manifest.java:59)
at sun.tools.jar.Main.run(Main.java:124)
at sun.tools.jar.Main.main(Main.java:778)

sos,please help me

...全文
103 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
hp1200 2001-07-29
  • 打赏
  • 举报
回复
up
zhanghw 2001-04-26
  • 打赏
  • 举报
回复
Thanks very much.
But when I run "java -jar MyJar.jar ",I get an error :
Exception in thread "main" java.lang.NoClassDefFoundError: MyClass$1
at MyClass.main(MyClass.java:6) .

And I don't understand why <the java tutorial> teach us by error.
I get the instruction from http://java.sun.com/docs/books/tutorial/javabeans/writingbean/index.html
the tittle is Writing a Simple Bean;
who can tell me how to write a simple bean and excute it in the beanbox ?
I will add score to you
skyyoung 2001-04-26
  • 打赏
  • 举报
回复
In the manifest file of a JAR, it is possible to specify the class to be used when the JVM is lauched with the JAR as parameter. The class must have a main().
Try with this simple class import java.awt.*;
import java.awt.event.*;

public class MyClass {
public static void main(String[] args) {
Frame f = new Frame();
f.addWindowListener
(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}
);
f.add(new Label("Hello world"));
f.setSize(200,200);
f.setVisible(true);
}
}




Then create this manifest file (manifest.mft) with any text editor. Manifest-Version: 1.0
Main-Class: MyClass
Classpath: .\MyJar.jar



Next, you include the manifest file in the JAR (MyJar.jar) with the MyClass class. jar cvfm MyJar.jar manifest.mft MyClass.class



Then you are able to start the MyClass.class by double-clicking on the MyJar.jar file (if the JRE is correctly installed) or by typing java -jar MyJar.jar



On NT, you can also make JARs run from the command-line by setting the PATHEXT environment variable, for example set PATHEXT=.EXE;.BAT;.CMD;.JAR




Then if you have the jar file MyJar.jar accessible via the PATH environment variable, typing "MyJar" on the DOS command line will invoke "java -jar MyJar.jar" .

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧