클래스 경로를 올바르게 얻을 수 없습니다


0

this slick2d 예제 (첫 번째)를 컴파일하려고하는데 작동하지 않습니다.

import org.newdawn.slick.AppGameContainer; 
import org.newdawn.slick.BasicGame; 
import org.newdawn.slick.GameContainer; 
import org.newdawn.slick.Graphics; 
import org.newdawn.slick.SlickException; 
/** 
* @author panos 
*/
public class WizardGame extends BasicGame 
{ 
    public WizardGame() 
    { 
     super("Wizard game"); 
    } 

    public static void main(String[] arguments) 
    { 
     try 
     { 
      AppGameContainer app = new AppGameContainer(new WizardGame()); 
      app.setDisplayMode(500, 400, false); 
      app.start(); 
     } 
     catch (SlickException e) 
     { 
      e.printStackTrace(); 
     } 
    } 

    @Override 
    public void init(GameContainer container) throws SlickException 
    { 
    } 

    @Override 
    public void update(GameContainer container, int delta) throws SlickException 
    { 
    } 

    public void render(GameContainer container, Graphics g) throws SlickException 
    { 
    } 
} 

지시에 따라 내가 디렉토리에 lwjgl.jar, slick.jar 및 ibxm.jar 넣어했습니다 여기에 코드입니다. 그럼 내가 시도 :

javac -classpath.; 전체 경로 \ slick.jar .; 전체 경로 \ lwjgl.jar; 전체 경로

ibxm.jar \ 다음

자바 WizardGame

하지만 난 단지 클래스 i는 클래스 경로를 설정하고있을 때 뭔가 잘못해야 의미, 정의되지 않는다는 오류를 얻을. 나는 내가 뭘 잘못하고 있는지 모르겠다.

는 나 또한

javac의의 -classpath을 시도했습니다,.. \ slick.jar,.. \ lwjgl.jar;. \

어느 쪽이든 ibxm.jar, JVM이 발견 안 소스 코드와 동일한 디렉토리에있는 경우 .jar 파일에 대해서? 제 경우에는 WizardGame.java와 같은 디렉토리에 3 개의 jar 파일을 설정했습니다. -classpath 인수없이 컴파일하려고해도 작동하지 않습니다.

편집 : 내가 지시하지만, 지금은 "더 java.library.path에 LWJGL"

내가 WinRAR과 내 lwjgl.jar을 조사하고 두 개의 폴더가 포함되어 보았다 말해없는 것 같이했다 : META-INF 그리고 org, 그리고 org 안에 lwjgl이 있습니다. 그게 그렇게 생각 나니? 왜냐하면 그것은 틀렸어.

편집 2 : 다음 내가

자바를 사용

항아리 CFM의 test.jar의 manifest.txt가이 jar 파일을 생성

- : 는 사용, 당신이 말한 것과 매니페스트를 생성 jar test.jar

그런 다음 마법사 마법사 게임의 정의를 찾지 못했다고 말했습니다.

5

는 또한 자바 명령에 -classpath 옵션을 추가해야합니다. 컴파일러뿐 아니라

좋아 :

javac -classpath .;lib\myjar.jar MyClass.java 

다음

java -classpath .;lib\myjar.jar MyClass 

그렇지 않으면 인터프리터 (자바)에 필요한 클래스를 어디서 찾을 수 있는지 알 수 없습니다입니다.


4

오스카 (Oscar is on bang) - java 명령에서도 -classpath가 필요합니다.

당신이 볼 수있는 또 다른 것 (당신이 지금하고있는 것에 대해 과잉이다.하지만 여전히 경험을 위해해야한다)은 JAR 파일을 만드는 것이다. JAR 파일에서 manifest.mf 파일을 제공하여 java 명령에 다른 JAR 파일의 위치와 기본 클래스의 위치를 ​​알릴 수 있습니다.

그런 다음을 통해 프로그램을 실행할 것 "자바 -jar foo.jar에"

  • http://java.sun.com/docs/books/tutorial/deployment/jar/manifestindex.html
  • http://java.sun.com/docs/books/tutorial/deployment/jar/appman.html
  • http://java.sun.com/docs/books/tutorial/deployment/jar/downman.html

나는 다음과 같은 manifest.m 파일이 당신이 원하는 것을 할 것이라고 믿는다.) 끝 부분에 빈 줄이 있거나 작동하지 않습니다 : 모든 JAR 파일 (foo.jar에 다른 세)가 같은 디렉토리에 있다고 가정

 
Main-Class: WizardGame 
Class-Path: slick.jar lwjgl.jar ibxm.jar 

합니다.

  0

아마 "고급 주제"로 시작하지만이 내용을 처음부터 배울 가치가 있습니다. 22 feb. 092009-02-22 04:55:42

  0

실제 배포의 경우이 대답이 더 좋습니다. 22 feb. 092009-02-22 05:31:34