[英]Ant deployment. Jar can't find the main class
創建簡單的測試 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,但我無法啟動它。 我收到消息:找不到主要的 class: com.mytest.home ?
怎么了? 這似乎是簡單直接的過程。 我錯過了什么嗎?
謝謝。
我在您的 ant 腳本中找不到編譯任務。 如果您沒有編譯任務,如何生成 class 文件?
也只需解壓縮 jar 文件,看看 class 是否真的存在?
我對這一切有點困惑。 據我所知 Eclipse 正在運行中構建項目,當您鍵入時,當您決定部署時,您的部署腳本只需要 package 一切按照您在腳本中指定的方式。 它基本上將 class 文件從您的項目復制到 jar 文件中。
對於我的具體問題,原來我缺少<fileset>元素,它是<jar>元素的子元素,所以我的 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 文件,它工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.