java - 项目在 NetBeans 上运行良好,但 .jar 出现错误

标签 java netbeans

我正在 NetBeans 上运行我的项目,但无法成功运行 .jar 文件。 1.我正在使用Java类库开发我的项目,后来发现 list 文件存在一些问题。 。 2.然后为了解决上述问题,我将项目创建为JavaApplication项目,现在 list 看起来像这样

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.3
Created-By: 1.6.0_22-b22 (Sun Microsystems Inc.)
Class-Path: 
Main-Class: gameloftbraker.GameLoftBraker

在终端上抛出以下异常:

Exception in thread "main" java.lang.NullPointerException
    at javax.swing.ImageIcon.<init>(ImageIcon.java:204)
    at gameloftbraker.Ball.<init>(Ball.java:26)
    at gameloftbraker.Arena.gameInit(Arena.java:71)
    at gameloftbraker.Arena.addNotify(Arena.java:67)
    at java.awt.Container.addNotify(Container.java:2584)
    at javax.swing.JComponent.addNotify(JComponent.java:4687)
    at java.awt.Container.addNotify(Container.java:2584)
    at javax.swing.JComponent.addNotify(JComponent.java:4687)
    at java.awt.Container.addNotify(Container.java:2584)
    at javax.swing.JComponent.addNotify(JComponent.java:4687)
    at javax.swing.JRootPane.addNotify(JRootPane.java:754)
    at java.awt.Container.addNotify(Container.java:2584)
    at java.awt.Window.addNotify(Window.java:707)

提前感谢您的帮助。我希望我没有遗漏任何东西。代码构建并成功运行时没有问题,如果需要代码请告诉我。

球.java

////////////////
package gameloftbraker;

import javax.swing.ImageIcon;

public class Ball extends Graphc implements Commn {

    protected String ball = "../images/ball.png"; //address to ball graphic
    protected int xdir;      

    protected int ydir;

    public Ball(){  
        xdir =  2;
        ydir = -2;

        ImageIcon img = new ImageIcon(this.getClass().getResource(ball));
        image = img.getImage();

        height = image.getHeight(null);
        width = image.getWidth(null);

        resetState();
    }
// rest of the functions * it works perfectly as project but unable to run in .jar
}

最佳答案

如果您向我们展示 Ball 的代码,突出显示堆栈跟踪中显示的行,将会有所帮助...但我猜测是您还没有将游戏的图形正确捆绑到 jar 文件中。

有一点需要指出:

There is no problem in code as it build and runs successfully

那么它现在没有运行成功,是吗?在一个环境中成功构建并运行并不意味着代码没有问题。例如,您可以在其中拥有任何其他计算机上都不存在的硬编码文件名 - 我并不是说实际上这里的情况,我只是说“适用于我的机器”并不能证明代码没有问题。

编辑:现在我们可以看到您的代码,看起来 ball.png 可能不在 jar 文件中。 或者问题是您在资源名称中使用了..。尝试将资源名称更改为:

// TODO: Make this private static final unless you have any reason not to...
protected String ball = "/images/ball.png";

关于java - 项目在 NetBeans 上运行良好,但 .jar 出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11211110/

相关文章:

java - 如何使用 JPA 和 Hibernate 更新前 N 行

java - 返回错误 "Test class should have exactly one public zero-argument constructor"

java - 如何不断提示用户输入新词

java - 文件仅当放置在将从 jar 中删除的位置时才可访问

grails - 默认情况下,Grails在netbeans中进行生产

java - Tomcat 将另一个 xml 文件包含到 web.xml

java - 使用 Jackson 在 JSON 中插入和删除内部节点?

java - Amazon AWA - 未发现类 Def 异常

java - getRuntime() 结果取决于 Netbeans 版本

java - netbeans 项目属性中的 vm 选项是什么?