当前位置: 首页 > 知识库问答 >
问题:

Eclipse导出的jar文件只是显示了一个黑色的J面板

郏景澄
2023-03-14

我正在开发一个java游戏,这个游戏在eclipse中运行得非常好,但是当我将它作为一个可运行的jar文件导出时,它却不能运行。只出现了一扇黑色的窗户。

我的游戏有一个启动屏幕,几秒钟后会变为菜单屏幕。启动屏幕由BufferedImage(jpg格式)组成,但菜单屏幕也由Graphics2D书写组成。在运行jar文件几秒钟后,写入内容不会出现,所以我认为图像格式等可能不是问题。

我很困惑和沮丧,所以任何帮助将不胜感激。

原来问题出在我使用计时器上,这是我的飞溅屏幕来源

  package GameState;

import java.awt.Graphics2D;
 import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

 import javax.imageio.ImageIO;
import javax.swing.Timer;

import Main.GamePanel;

public class SplashState extends GameState implements ActionListener{



private BufferedImage image;
private Timer timer;

public SplashState(GameStateManager gsm) {

    this.gsm = gsm;
     try {
        image = ImageIO.read(new File("Resources/Backgrounds/block.jpg"));
        timer = new Timer(2000, this);
        timer.setRepeats(false);
        timer.start(); 
     } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}

public void init() {

}

public void update() {

}

public void draw(Graphics2D g) {
    g.drawImage(image, (GamePanel.WIDTH-image.getWidth())/2, (GamePanel.HEIGHT-image.getHeight())/2, null);

}


public void keyPressed(int k) {

}
public void keyReleased(int k) {}

public void actionPerformed(ActionEvent arg0) {
    // TODO Auto-generated method stub

    gsm.setState(GameStateManager.MENUSTATE);
timer.stop();
}

}

我仍然不知道出了什么问题,所以任何帮助都将不胜感激

共有1个答案

东郭兴学
2023-03-14

我过去遇到过类似的问题,这是由于 Eclipse 将所需的库打包到 jar 中的方式。我敢打赌,您将它设置为“将所需的库提取到生成的 jar 中”,您应该将其设置为“将所需的库打包到生成的 jar 中”。为此,请右键单击项目 -

如果要写入映像,则该映像必须位于 jar 文件之外,因为无法在 jar 文件运行时对其进行编辑。如果是这种情况,您可能需要创建一个包含 jar 和它将写入的图像的文件夹。

 类似资料:
  • 我试图让这个游戏工作,但它只是显示一个黑屏。这是一个简单的游戏,你只要避免掉块。我看过相关的问题,但没有一个答案对我有用。它说我必须添加更多细节,所以希望这一行足够了,因为idk在这一行还需要写些什么来为我的文章添加细节。我的代码:

  • 我在Eclipse中有一个Java项目。这是文件夹结构: 代码包位于src中,所有图像都位于res文件夹中。 代码中的图像参照如下: 但是,在我将项目导出到JAR文件后(通过使用导出- 所有图像都在根文件夹中,无法正确引用。如何正确地引用这些图像,使它们在Eclipse和导出的JAR中都可见?

  • 不太确定问题发生在哪里。我在Blender有一个模型看起来是这样的: 我有它所有的UV贴图和这样的 ,蓝色高亮的边缘是从一个透明的.png纹理。下面是节点编辑器: 现在,当我按照LibGDX建议导出到.fbx时,我使用以下设置: 但当我通过fbx-convert运行它并生成我的g3dj文件时,材料显示如下: 没有图像纹理在视线内(即使当不透明度更改为1.0)。是不是有什么其他的东西我应该做,将使它

  • 我已经用Eclipse创建了一个可运行的jar。在我的项目中,我有一个叫做问卷的文件夹,里面有一些我使用的文本文件。当我运行我的可运行jar时,它不起作用,除非我在与jar相同的文件夹中有文件夹调查表。我尝试了一些我在stackoverflow中读到的解决方案,比如将文件夹调查表添加为源文件夹,也可以从Properties->java build path->Libraries->add clas

  • 我完全误解了关于将项目导出到JAR的一些事情。 2事情正在发生。

  • 问题内容: 我正在尝试将Eclipse中的程序导出到jar文件。 在我的项目中,我添加了一些图片和PDF:s。当我导出到jar文件时,似乎只有main编译和导出了。 我的意愿是将所有内容都导出到jar文件中,因为那样的话,我想将其转换为可导出文件,例如.exe文件。 但是如何? 问题答案: 转到文件->导出-> JAR文件,您可以在其中选择“导出生成的类文件和源”,并确保选择了您的项目,并且该目录