创建简单的测试java项目只是为了学习如何使用Ant来部署应用程序。 Java项目使用Swing创建JFrame,使用一个JLabel来表示“Hello World”。它看起来像这样:
package com.mytest;
import javax.swing.*;
public class home {
private static void createAndShowGUI() {
JFrame frame = new JFrame("HelloWorldSwing");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel label = new JLabel("Hello World");
frame.getContentPane().add(label);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}
然后我创建了build.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<project default="mytest" basedir=".">
<target name ="mytest" description="Create a jar for the Test project">
<echo message="starting MyTest jar creation..." />
<jar jarfile="mytest.jar" includes="*.class" basedir="bin">
<manifest>
<attribute name="Created-By" value="1.6.0_04 (Sun Microsystems Inc.)" />
<attribute name="Built-By" value="Me" />
<attribute name="Implementation-Version" value="1.0" />
<attribute name="Main-Class" value="com.mytest.home" />
</manifest>
</jar>
<echo message="MyTest jar created..." />
</target>
</project>
问题是,一旦我通过Eclipse运行部署,就会创建jar,但我无法启动它。我收到消息:无法找到主要类:com.mytest.home ?
有什么问题?这似乎是简单直接的过程。我错过了什么吗?
感谢。
答案 0 :(得分:0)
我在你的ant脚本中找不到编译任务。如果没有编译任务,如何生成类文件?
还要解压缩jar文件并查看该类是否实际存在?
答案 1 :(得分:0)
我对这一切感到有点困惑。据我所知,Eclipse正在运行时构建项目,在您键入时,当您决定部署时,您的部署脚本只需要按照您在脚本中指定的方式打包所有内容。它基本上将项目中的类文件复制到jar文件中。
对于我的具体问题,原来我错过了&lt; fileset&gt; 元素,它是&lt;的子元素jar&gt; 元素,所以我的xml脚本现在看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<project default="mytest" basedir=".">
<target name ="mytest" description="Create a jar for the Test project">
<echo message="starting MyTest jar creation..." />
<jar jarfile="mytest.jar" includes="*.class" basedir=".">
<fileset dir="./bin" />
<manifest>
<attribute name="Created-By" value="..." />
<attribute name="Built-By" value="Me" />
<attribute name="Implementation-Version" value="1.0" />
<attribute name="Main-Class" value="com.mytest.home" />
</manifest>
</jar>
<echo message="MyTest jar created..." />
</target>
</project>
我试图运行jar文件,但它确实有效。