0

ソースフォルダ(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からコンパイルされてうまく機能したので、コンパイル方法に何か問題があると思います。ビルドファイルに明らかな間違いはありますか?

ここで役立つ情報を見逃した場合はお知らせください。

4

1 に答える 1

1

古典的な間違い:1つの設定で「すべてが正常に機能した」ということは、すべてが正しく行われ、その後に問題が発生した場合に責任がないことを意味すると想定します。

それはあなたのIDEがあなたが知らないいくつかのことを処理したことを意味します。

あなたのものである最初のクラスを見てください:

controller.viewsynchronizer.CZViewManager.getIcon(Unknown Source)

コントローラがCLASSPATHにないアイコン画像を探しているようです。

于 2012-05-01T22:23:50.327 に答える