Java 让我的游戏变成一个有图片的罐子

Java 让我的游戏变成一个有图片的罐子,java,eclipse,image,Java,Eclipse,Image,我终于完成了我的游戏,我想把它分发给我的几个朋友,我唯一的问题是,我可以把它制作成可运行的jar文件,它在我的笔记本电脑上运行得非常好,但是当我把它上传到网上并给其他人发送一个链接时,当他们下载它时,图像就不存在了。我寻找解决办法,但我遇到的那些我根本不懂,有人能给我解释一下吗三, 下面是我代码中的所有图像 游戏课 Graphics2D g2d = (Graphics2D) g; ImageIcon ic= new ImageIcon ("D:/USER/Desktop/Other/Sn

我终于完成了我的游戏,我想把它分发给我的几个朋友,我唯一的问题是,我可以把它制作成可运行的jar文件,它在我的笔记本电脑上运行得非常好,但是当我把它上传到网上并给其他人发送一个链接时,当他们下载它时,图像就不存在了。我寻找解决办法,但我遇到的那些我根本不懂,有人能给我解释一下吗三,

下面是我代码中的所有图像

游戏课

Graphics2D g2d = (Graphics2D) g;
    ImageIcon ic= new ImageIcon ("D:/USER/Desktop/Other/Snow.jpg");
    g2d.drawImage(ic.getImage(),0,0,null);
用户类

    public Image useriamge(){
    ImageIcon icon = new ImageIcon("D:/User/Desktop/Other/us.png");
    return icon.getImage();
障碍类

   ImageIcon icon = new                               
   ImageIcon("D:/User/Desktop/Other/ob.png");
   return icon.getImage();
主类

 final JFrame Starting_menu = new JFrame ("Game");
 ImagePanel background = new ImagePanel("D:/USER/Desktop/Other/Snow.jpg");
 Starting_menu.add(background);

final JFrame Help_screen = new JFrame ("Help menu");
ImagePanel background2 = new  ImagePanel("D:/USER/Desktop/Other/HelpScreen.jpg");
    Help_screen.add(background2);

发生这种情况的原因是您正在引用计算机上的特定文件。他们的计算机上没有的文件。可以将图片与jar一起发送,并包括将图片放置在正确位置的安装脚本,也可以包括将图片放置在何处的说明


或者,按照资源文件夹中的约定将它们打包到jar中,以便它们始终可用。但是,在这种情况下,如果不更改jar,您将根本无法更改图像

好吧,如果我错了,请纠正我,但是您正在从硬盘上的随机文件夹加载图像。当您将游戏发送给某人时,.jar文件将在您在代码中编写的位置查找图像文件。如果您的朋友没有位于同一位置的图像文件夹,.jar文件将无法找到并加载图像。如果您只需将图像放入java_game_project_文件夹/images中,就可以使用“images/filename.jpeg”加载它们。您还可以将资源文件夹包含在.jar文件中

您指定的路径特定于您的计算机

您可以将图像存储在项目的
src
文件夹中,然后使用
getClass().getResource(“Snow.png”)
引用它们

我建议为您的图像创建一个新的包,可能称为
res
,以获取资源。当您需要加载图像时,您需要执行
getClass().getResource(“res/Snow.png”)