私のコードは Eclipse で正常に動作し、ビルド パス エラーなどはありませんが、コマンド ラインから Java プログラムを実行しようとするclassNotFound Exception
と、内部クラスの 1 つでエラーが発生します。この例外がどのように発生するのか理解できないだけでなく、IDE 環境で問題なく動作するため、デバッグの方法さえわかりません。どんな助けでも大歓迎です!
編集
私は J-- と呼ばれる Java のサブセット用のコンパイラを書いているので、それがどのように機能するかについて深く知りたくありません。しかし、呼び出す代わりにjavac HelloWorld.java
、同等のものを呼び出しますj-- HelloWorld.java
。javac
正常に動作します。問題はコードにあると言うかもしれませんが、Eclipse では問題なくコンパイルおよび実行されます。そのため、どこかで切断が発生しているようです。役立つ場合は、Windows bash スクリプトを次に示します。
set BASE_DIR=%~dp0
set j="%BASE_DIR%\..\"
set JAVA=java
set CPATH="%BASE_DIR%\..\lib\j--.jar;%BASE_DIR%\..\lib\spim.jar"
if "%CLASSPATH%" == "" goto runApp
set CPATH=%CPATH%;"%CLASSPATH%"
:runApp
%JAVA% -classpath %CPATH% jminusminus.Main "j--" %*
set JAVA=
set BASE_DIR=
set CPATH=
編集
Aubin のおかげで、.jar
ファイルを出力して比較することで、class not found
この競合を解決できました。