2011-08-16 5 views
0

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?

무엇이 잘못 되었나요? 그것은 단순한 직선 과정처럼 보입니다. 내가 놓친 게 있니?

감사합니다.

답변

0

ant 스크립트에서 컴파일 작업을 찾을 수 없습니다. 컴파일 작업이 없으면 클래스 파일은 어떻게 생성됩니까?

또한 jar 파일의 압축을 풀고 클래스가 실제로 있는지 확인하십시오.

+0

컴파일 작업이 무엇인지 모르겠습니다. 이클립스를 포함한 여러 도움말 웹 사이트를 보았으며 컴파일 작업에 대한 언급이 어디에도 표시되지 않습니다. 수동 빌드에서 배포 작업을 실행하려면 프로젝트 (속성> 작성기)를 설정합니다. 메시지를 성공적으로 만들었지 만 병을 열었고 비어 있습니다. 컴파일 작업을 어떻게 지정할 수 있습니까? – bobetko

+0

제 말은 컴파일 작업이 무엇인지 이해하지만 어떻게해야할지 모릅니다. 또한 일부 오래된 프로젝트에서 기존 deployment.xml을보고 있습니다. 응용 프로그램을 잘 배포하지만 XML 파일에서 컴파일 작업을 찾을 수 없습니다 ... – bobetko

+0

http://ant.apache.org/manual/Tasks/javac.html 링크를 확인하십시오. Java 파일을 임시 폴더로 컴파일하려면 javac 태스크가 있어야합니다. 그런 다음 항아리에 묶을 수 있습니다. 당신이 개미에 익숙하지 않다면 MANIFEST.MF 파일을 수동으로 생성하고 그것을 병에 포함하는 것이 더 쉬울 것입니다. 처음에는 인생을 편하게 해줄 것입니다. –

0

나는이 모든 것에 대해 약간 당황 스럽다. 내가 아는 한 Eclipse는 실행 중에 프로젝트를 빌드하는 것으로, 입력 할 때 배포 스크립트는 사용자가 스크립트에서 지정한 방식으로 모든 것을 패키징하면됩니다. 기본적으로 프로젝트의 클래스 파일을 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 파일을 실행하려고 시도했지만 작동했습니다.

+0

코드를 컴파일하기 위해 Eclipse에 의존하고 있습니다. 개미 스크립트에 javac 작업을 넣는다. 그렇지 않으면 조만간 문제가 생기기 시작할 것입니다. –

관련 문제