我正在尝试编译这个 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
但我得到的错误是jar类没有定义,这意味着当我设置类路径时必定会出错.我不确定我做错了什么.
我也试过了
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:使用您所说的创建清单,然后使用:
jar cfm test.jar manifest.txt
这创建了一个jar文件,然后我用了
java -jar test.jar
然后它告诉我它没有找到WizardGame类的定义.
您还必须在java命令中添加-classpath选项.不仅是编译器.
喜欢:
javac -classpath .;lib\myjar.jar MyClass.java
然后
java -classpath .;lib\myjar.jar MyClass
否则,解释器(java)将不知道在哪里可以找到所需的类.