gpt4 book ai didi

Java 程序在 Eclipse 中运行良好但不能作为 .jar 文件运行

转载 作者:行者123 更新时间:2023-11-30 11:19:36 24 4
gpt4 key购买 nike

我的 .jar 文件有问题。它在 Eclipse 中运行良好,但一旦我导出它,它就打不开。我检查了 list 文件,看起来没问题。

我试过将其导出为可运行的 jar,以及仅使用 jar 生成器。没有任何效果。

我尝试在命令提示符下运行它,它说它无法访问 jar 文件...我在这里搜索了一段时间,但还没有找到答案。

我不确定我做错了什么。我唯一能想到的是我没有正确获取图像。

我正在为程序的 Sprite 使用 .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

最佳答案

如果你的图像在 src 中的 resources 包中 你应该为 getResource() 使用的路径类似于

class.getResource("/resources/levels/level1.png")

更新测试程序

import java.awt.Image;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JOptionPane;

public class TestImage {

public static void main(String[] args) throws IOException {
Image image = ImageIO.read(TestImage.class.getResource("/resources/images/image.png"));
ImageIcon icon = new ImageIcon(image);
JLabel label = new JLabel(icon);
JOptionPane.showMessageDialog(null, label);
}
}

关于Java 程序在 Eclipse 中运行良好但不能作为 .jar 文件运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23147895/

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