求教:Java打包成jar遇到的问题

jay314159 2009-08-05 11:29:43
我利用MyEclipse写了一个名为ControlTree.Java的文件,可以成功运行,但是想生成jar时遇到了以下两个问题:
1、用MyEclipse软件“File>>Export”生成ControlTree.jar:
双击ControlTree.jar时提示“Fatal exception occurred,program will exit”;
2、手工生成jar:
编写ControlTree.mf文件如下:
Created-By: Melody Main-Class: ControlTree<回车>
然后用jar cvfm命令生成ControlTree.jar,双击时提示:“Failed to load Main-Class manifest attribute from **.jar ”。

为什么两个方法都错误呢?请大家赐教……

我的Java代码如下:

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;

import org.dom4j.Attribute;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.Document;
import org.dom4j.VisitorSupport;
import org.dom4j.DocumentException;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
import java.util.Scanner;

public class ControlTree
{
//读入x3d
protected Document doc;
public Document readX3d(File fileName) throws IOException, DocumentException
{
SAXReader reader = new SAXReader();
doc = reader.read(fileName);
return doc;
}
// 修改x3d
@SuppressWarnings("deprecation")
public void modifyX3d(int deep,int height,String newfilename)throws IOException, DocumentException
{
//设置树木的高度
Node node = doc.selectSingleNode("//IndexedLineSet/Coordinate/@point");
node.setText("0 0 0 0 "+height+" 0");

//按照deep(递归次数)生成树,
Element elsce =(Element)doc.selectNodes("//Scene" ).get(0);
for(int i=1;i<deep;i++)
{
Element elgro=elsce.addElement("Group");
elgro.setAttributeValue("DEF", "group"+i);

Element eltra=elgro.addElement("Transform");
eltra.setAttributeValue("DEF","s"+i);
eltra.setAttributeValue("scale","0.5 0.5 0.5");
eltra.addElement("Group").setAttributeValue("USE","group"+(i-1));
//树枝的旋转
eltra=elgro.addElement("Transform");
eltra.setAttributeValue("translation","0 1 0");
eltra.addElement("Transform").setAttributeValue("USE","s"+i);
//树枝的平移
eltra=elgro.addElement("Transform");
eltra.setAttributeValue("DEF","g"+i);
eltra.setAttributeValue("rotation","1 0 0 0.75");
eltra.setAttributeValue("translation","0 1 0");
eltra.addElement("Transform").setAttributeValue("USE","s"+i);
//树叶的旋转
eltra=elgro.addElement("Transform");
eltra.setAttributeValue("rotation","0 1 0 2.09");
eltra.addElement("Transform").setAttributeValue("USE","g"+i);

eltra=elgro.addElement("Transform");
eltra.setAttributeValue("rotation","0 1 0 -2.09");
eltra.addElement("Transform").setAttributeValue("USE","g"+i);

}

OutputFormat of = OutputFormat.createPrettyPrint();
//指定 XML 编码
of.setEncoding("GBK");
//使用优美的缩进格式保存在磁盘上
XMLWriter output = new XMLWriter(
new FileWriter( new File(newfilename)),of);
output.write( doc );
output.close();

}

public static void main(String[] argv)throws IOException, DocumentException
{
Scanner scan1 = new Scanner(System.in);
System.out.println("Please input an int to set tree-deep...");
int deep = scan1.nextInt();
Scanner scan2 = new Scanner(System.in);
System.out.println("Please input an int to set tree-height...");
int height = scan2.nextInt();

ControlTree readin=new ControlTree();
readin.readX3d(new File("D:/dom4j/tree.x3d"));
System.out.println("Read old file from D:/dom4j/example.x3d");
readin.modifyX3d(deep,height,"D:/dom4j/newx3d.x3d");
System.out.println("Creat new file at D:/dom4j/newfile.x3d ");
}
}
...全文
83 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
frankliuhome 2009-08-06
  • 打赏
  • 举报
回复

Step 1: create ControlTree.mf

Created-By: Melody
Main-Class: ControlTree

Step 2: create jar

jar cfm ControlTree.jar ControlTree.mf ControlTree.class
baetg 2009-08-06
  • 打赏
  • 举报
回复
代码错误

62,614

社区成员

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

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