我正在尝试编译这个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精灵游戏
但是我收到未定义 jar 类的错误,这意味着当我设置类路径时一定有问题。我不确定我做错了什么。
我也试过
javac -classpath .;.\slick.jar.;.\lwjgl.jar;.\ibxm.jar
无论哪种方式,如果 .jar 文件与源代码位于同一目录中,jvm 不应该自行查找它们吗?就我而言,我已经在 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 类的定义。