Ant를 사용하여 응용 프로그램을 배포하는 방법을 배우기 위해 간단한 테스트 Java 프로젝트를 만들었습니다. 자바 프로젝트는 Swing을 사용하여 JFrame을 만들고 하나의 JLabel은 "Hello World"라고 말합니다. 그것은 다음과 같습니다 Ant 전개. Jar가 주 클래스를 찾을 수 없습니다.
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>
문제가, 항아리가 만들어집니다,하지만 난 그것을 시작할 수 없습니다. 메시지가 나타납니다 : 메인 클래스를 찾을 수 없습니다 : com.mytest.home?
무엇이 잘못 되었나요? 그것은 단순한 직선 과정처럼 보입니다. 내가 놓친 게 있니?
감사합니다.
컴파일 작업이 무엇인지 모르겠습니다. 이클립스를 포함한 여러 도움말 웹 사이트를 보았으며 컴파일 작업에 대한 언급이 어디에도 표시되지 않습니다. 수동 빌드에서 배포 작업을 실행하려면 프로젝트 (속성> 작성기)를 설정합니다. 메시지를 성공적으로 만들었지 만 병을 열었고 비어 있습니다. 컴파일 작업을 어떻게 지정할 수 있습니까? – bobetko
제 말은 컴파일 작업이 무엇인지 이해하지만 어떻게해야할지 모릅니다. 또한 일부 오래된 프로젝트에서 기존 deployment.xml을보고 있습니다. 응용 프로그램을 잘 배포하지만 XML 파일에서 컴파일 작업을 찾을 수 없습니다 ... – bobetko
http://ant.apache.org/manual/Tasks/javac.html 링크를 확인하십시오. Java 파일을 임시 폴더로 컴파일하려면 javac 태스크가 있어야합니다. 그런 다음 항아리에 묶을 수 있습니다. 당신이 개미에 익숙하지 않다면 MANIFEST.MF 파일을 수동으로 생성하고 그것을 병에 포함하는 것이 더 쉬울 것입니다. 처음에는 인생을 편하게 해줄 것입니다. –