gpt4 book ai didi

java - 无法获得正确的类路径

转载 作者:行者123 更新时间:2023-12-01 07:00:07 26 4
gpt4 key购买 nike

我正在尝试编译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

但是我收到了 jar 类未定义的错误,这意味着当我设置类路径时一定有问题。但我不确定我做错了什么。

我也尝试过

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

无论哪种方式,如果 .jar 文件与源代码位于同一目录中,jvm 不应该自行查找它们吗?就我而言,我已将 3 个 jar 文件设置在与 WizardGame.java 相同的目录中。如果我尝试在不使用 -classpath 参数的情况下进行编译,则它不起作用。

编辑:我按照指示操​​作,但现在它告诉我“java.library.path 中没有 lwjgl”

我用winrar检查了我的lwjgl.jar,发现它包含两个文件夹:meta-inf和org,然后在org内部有lwjgl。应该是这样吗?因为如果是的话,我不知道出了什么问题。

编辑2:根据您所说的内容创建了 list ,然后使用:

jar cfm test.jar list .txt

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

java -jar 测试.jar

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

最佳答案

您还必须将 -classpath 选项添加到 java 命令中。不仅仅是编译器。

喜欢:

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

然后

java -classpath .;lib\myjar.jar MyClass

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

关于java - 无法获得正确的类路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/574351/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com