【发布时间】:2014-04-18 05:22:02
【问题描述】:
我的 .jar 文件有问题。它在 Eclipse 中运行良好,但一旦我导出它,它就无法打开。我检查了清单文件,看起来没问题。
我尝试将其导出为可运行的 jar,以及仅使用 jar 构建器。没有任何效果。
我尝试在命令提示符下运行它,它说它无法访问 jar 文件...我在这里搜索了一段时间,但还没有找到答案。
我不确定我做错了什么。我唯一能想到的就是我没有正确获取图像。
我正在为程序的精灵使用 .png 文件,下面是我如何为我的程序获取它们的示例。
此代码开始从 .png 文件构建关卡。
public class SpawnLevel extends Level{
public SpawnLevel(String path) {
super(path);
}
protected void loadLevel(String path){
try{
System.out.println("classpath is: " + System.getProperty("java.class.path"));
BufferedImage image = ImageIO.read(SpawnLevel.class.getResource(path));
int w = width = image.getWidth();
int h = height= image.getHeight();
tiles = new int[w*h];
image.getRGB(0,0,w,h,tiles,0,w);
}catch(IOException e){
e.printStackTrace();
System.out.println("EXEPTION FOUND!!! Could not load the level file!");
}
}
protected void generateLevel(){
System.out.println("Tiles: " + tiles[0]);
}
}
我之前为另一个程序制作了另一个 .jar 并且没有问题。任何帮助将不胜感激。
如果有帮助,我使用此代码显示资源文件夹路径信息。
System.out.println("classpath is: " + System.getProperty("java.class.path"));
这是我的资源文件夹的当前路径。在我从 eclipse 导出之前。
classpath is: C:\Users\name\workspace\Rpg_Game\bin;C:\Users\name\workspace\Rpg_Game\res
导出到 .jar 之后
classpath is: 2ndGameTest.jar
【问题讨论】:
-
试试 SpawnLevel.class.getResourceAs(path) 和路径是什么或者你能附上错误日志吗?
-
你是如何运行 jar 文件的?你的主要课程在哪里?
-
@andy 我将我的代码更改为 SpawnLevel.class.getResourceAsStream(path),现在当我通过命令提示符运行它时,它给我的异常是 imageIo.read(Unknown Source)。
-
这通常是路径字符串错误或图像未包含在 jar 中。
-
@greg-449 我的图像在项目文件夹中,并在我导出项目时出现。我正在查看我的项目的“配置构建路径”。如果构建路径正确,我应该查看什么?我目前看到了 src、系统库和我的资源文件夹。
标签: java eclipse executable-jar