我有一个 Netbeans 项目,它有一个源文件夹(在 Netbeans 项目文件夹之外)。现在,当我从 IDE 编译源代码时,一切正常。但是,当我使用自己的构建脚本时,它会在运行时出错。
该应用程序依赖于我使用path
元素和标签中的相应refid
属性指定的几个外部库classpath
(参见下面的代码)
这是我的构建文件
<project name="XX" default="dist" basedir=".">
<property name="dir.src" location="E:/XX git/xx/src"/>
<property name="nbproj" location="E:/Netbeans Project"/>
<property name="dir.dist" value="dist"/>
<path id="libs">
<fileset dir="${nbproj}/dist/lib">
<include name="*.jar"/>
</fileset>
</path>
<target name="clean">
<delete dir="dist"/>
<delete dir="release"/>
<delete dir="build"/>
</target>
<target name="compile">
<mkdir dir="build/classes"/>
<javac srcdir="${dir.src}" destdir="build/classes" includeantruntime="false">
<classpath refid="libs"/>
</javac>
</target>
</project>
当我使用 编译它时ant compile
,它会编译所有源文件而没有任何错误。但是,当我使用命令执行它时
java -cp "E:\Netbeans Project\dist\lib\*;." controller.CZSaw
它很好地创建了应用程序 GUI,然后当我执行某些操作时,它失败并出现以下错误:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(ImageIcon.java:167)
at controller.viewsynchronizer.CZViewManager.getIcon(Unknown Source)
at view.script.CZScriptView.<init>(Unknown Source)
at controller.script.CZScriptProcessor.<init>(Unknown Source)
at controller.script.CZScriptProcessor.getInstance(Unknown Source)
...
我知道仅仅看源代码就很难指出一些错误。但是,由于相同的代码在 IDE 中编译并运行良好,我认为我的编译方式有问题。构建文件中是否有任何明显的错误。
如果我在这里错过了一些有用的信息,请告诉我。