无法获得类路径


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

然后

的Java WizardGame

,但我得到的错误,罐子类没有定义,这意味着一定出事了,当我设置的classpath。我不知道我在做什么错误。

我也试过

javac的-classpath; \ slick.jar; \ lwjgl.jar; \ ibxm.jar

无论哪种方式,不应该在JVM发现关于.jar文件,如果它们与源代码位于同一目录中?在我的情况下,我已经在WizardGame.java所在的目录中设置了3个罐子。如果我尝试编译没有-classpath参数它虽然不工作。

编辑: 我照指示,但现在它在告诉我“中的java.library.path没有LWJGL”

我检查了我的lwjgl.jar用winrar,看到它包含两个文件夹:META-INF和org,然后在org里面有lwjgl。它应该是这样吗?因为如果是这样,我不知道什么是错的。

编辑2: 创建的清单和你说了什么,然后使用:

罐子立方英尺Test.jar的manifest.txt

这创造了一个jar文件,然后我用

爪哇 - jar test.jar

然后它告诉我它没有找到类WizardGame的定义。

5

你必须在-classpath选项添加到的java命令也。不仅仅是编译器。

喜欢:

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

然后

java -classpath .;lib\myjar.jar MyClass 

否则解释(JAVA)将不知道在哪里可以找到所需的类。


4

奥斯卡正在爆炸 - 你也需要java命令的-classpath。

你可以看到的另一件事(对于你现在正在做的事情是过度的,但你仍应该为经验做)是创建一个JAR文件。在JAR文件中,您可以提供一个manifest.mf文件,该文件告诉java命令在哪里查找其他JAR文件以及主类是什么。

你会然后通过运行程序 “Java的罐子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文件会做你想做的(注意你必须有在最后一个空行或将无法正常工作):

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

即假定所有的JAR文件(foo.jar中,其他三个)都在同一目录下。

  0

可能是“高级话题”,但值得从开始学习这个 22 2月. 092009-02-22 04:55:42

  0

对于实际分布,这是更好的答案。 22 2月. 092009-02-22 05:31:34