2012-05-15 5 views
0

고유 한 Java 종속성 (java.io 등) 만있는 간단한 클래스를 만들었습니다. 내 jar 파일과 bat 파일을 같은 폴더에 설정했습니다. BAT는 다음과 같이 간단하게 읽습니다.BAT 파일을 사용한 Jar 파일 실행

java -jar "MyApp.jar" 
pause 

내 컴퓨터의 여러 위치에서 실행할 수 있습니다. 하지만 zip 파일로 동료에게 보낸 경우 BAT 파일을 두 번 클릭하여 실행할 수 없습니다.

명령 창

오류

could not find the main class: MyApp.MyApp. Program will exit. 

이 사이트 주위를 찌르고했지만 가장 유사한 오류가 동일한 컴퓨터에서 사용을 포함하여 돌아왔다. 예 다른 컴퓨터에 Java가 설치되어 있습니다. 6.29

도움을 주시면 감사하겠습니다. 난 내 머리 위로 떨어져 생각할 수

+0

GUI가 있으십니까? 그렇다면 다른 사람들에게 제공하는 가장 바보 같은 방법은 [Java Web Start] (http://stackoverflow.com/tags/java-web-start/info)를 사용하는 것입니다. –

+0

'java -jar "MyApp.jar"''java -jar MyApp.jar' (따옴표 제외)를 사용하십시오. –

답변

3

두 가지 옵션이 :

1) 그는 추출 후 같은 디렉토리 (또는)에 모두 압축을 푼되지 않을 수도 있습니다, 그는 다른 JAR 파일의 주위에 이동했을 수 있습니다 위치.

2) 그의 ​​클래스 경로에는 현재 디렉토리가 포함되어 있지 않습니다. 클래스 패스에 '.'이 있습니다. (현재 디렉토리를 나타냄). 이 경우 '-cp'스위치를 포함하도록 명령을 수정할 수 있습니다.

+0

앱에는 콘솔 창에서 실행되는 GUI가 없습니다. 그는 자신의 데스크톱과 동일한 디렉토리로 압축을 풀었습니다. 도움이된다면 netbeans IDE를 사용하여 개발했습니다. – BigDerpa

0

그런 식으로 jar를 실행하려면 그 안에 manifest 파일과 함께 META-INF 폴더가 있어야합니다. 매니페스트 파일에는 main()을 사용하여 클래스를 가리키는 메인 클래스 행이 필요합니다. 당신의 IDE는 아마도 그것을 추가했을 것입니다.하지만 아마도 Jar 파일을 압축 해제 한 것들을 추출하는 과정에서, 또는 그와 같은 "재미있는"것이 있습니다.

http://docs.oracle.com/javase/tutorial/deployment/jar/appman.html

+0

문제가 발생하여 버전 문제가 발생했습니다. Java 7을 컴파일하면서 Java 6를 설치했습니다. Oracle 아카이브에서 Java 6을 설치하여이 문제를 해결했습니다. JDK1.6을 Java 플랫폼으로 설정합니다. – BigDerpa

+0

또한 Java 7로 빌드 할 때도 IDE를 구성하거나 클래스 파일 형식에서 1.6을 목표로하는 스크립트를 빌드 할 수 있습니다. – Jim