2011-12-24 3 views
3

JSmooth로 exe 파일을 만들고 있습니다. 그것은 잘 빌드하지만 다음 "메인 클래스를 찾을 수 없습니다 : MyProgram. 프로그램 종료됩니다"말한다. .jar 파일은 훌륭하게 실행됩니다. 이것은 (마지막에 새로운 라인) 매니페스트 파일의 수 있습니다 : JSmooth에서JSmooth EXE 컴파일

Mainifest-Version: 1.0 
Main-Class: MyProgram 

는 내가 가진 :

  • 는 윈도우 된 래퍼로 골격을 설정
  • 실행 바이너리는 "myprogram.exe로"입니다
  • 메인 클래스 필드는 "MyProgram"
  • 그런 다음 JSmooth의 "Classpath"섹션에 MyProgram.jar 파일을 포함 시켰습니다.

내가 누락 된 것이 있습니까? 자바에서 내 주요 클래스는 다음과 같습니다

public class MyProgram extends JPanel implements ActionListener, 
PropertyChangeListener { 

이 내가 .JAR 건물입니다 방법은 다음과 같습니다

jar cmf mainClass MyProgram.jar *.class 

내 매니페스트 파일은 "mainClass"이며 내가 먼저 위의 무엇을 넣어 포함되어 있습니다.

감사합니다.

+0

이 Swing 기반 데스크톱 응용 프로그램을 배포하려면 [Java Web Start] (http://stackoverflow.com/tags/java-web-start/info)를 사용해 보셨습니까? JWS는 x-plat 설치뿐만 아니라 도움을받을 수있는 더 많은 기회를 제공 할뿐만 아니라 (JWS에 대한 14 명의 추종자와 JSmooth에 대한 0의 비교로 판단) 도움의 기회를 제공합니다. –

답변

0

MyProgram은 어떤 패키지로 제공됩니까? 내가 매니페스트에서 보는 것에서 볼 때 기본 패키지에서와 같습니다. 아마 JSmooth가 그걸 처리하지 않을거야?

+0

멍청한 놈은 아니지만, 내가 동을 어떻게 가야합니까? 내 매니페스트에서 무엇을 변경해야합니까? – carget

+0

소스 파일에 첫 번째 줄로 package 문을 추가해야합니다. 예 : 패키지 foo; 그런 다음 소스 디렉토리 아래에 "foo"라는 하위 폴더 (패키지 이름과 정확히 일치해야 함)를 만들어 소스 파일을 거기로 옮기고 깨끗한 빌드를 수행해야합니다. 그런 다음 매니페스트를 변경하여 foo.MyProgram이라고 말하십시오. Netbeans (예를 들어)를 사용하는 경우 간단한 리팩토링으로 모든 작업을 처리합니다. 기본 Java 응용 프로그램 프로젝트를 사용하는 경우 실행 가능한 jar 파일도 빌드합니다. – Bill