2016-10-06 34 views
4

私はJavaプログラミングの初心者です。 StartSample.batというバッチファイルがあります。このバッチファイルはJavaプログラムを実行します。これは、バッチファイルのコードです:バッチファイルエラーが発生しました:「メインクラスが見つかりませんでした。」

@echo off 
set CLASSPATH=%CLASSPATH%;f3bc4jav.jar 
set CLASSPATH=%CLASSPATH%;PalmSecureSample_Java.jar 

@echo on 
java <classname> 

前述の.jarファイルは、バッチファイルと同じフォルダにあります。

StartSample.batを実行すると、Javaプログラムが必要なときに実行されます。

は、今、私がやった私は、このコードでそのバッチファイルを実行するJavaクラスを作成しました:

Process p = Runtime.getRuntime().exec("C:\\WINDOWS\\system32\\cmd.exe /c start C:\\Identify\\dll\\StartSample.bat"); 

私は自分のコードを実行すると、エラーが発生しました。エラーは次のとおりです。

C:workspace\Project>java <classname> Error: Could not find or load main class <classname> 

問題は何ですか?

+1

試してみてくださいC:\\ Identify \\ dll \\ f3bc4jav.jar'および 'C:\\ Identify \\ dll \\ PalmSecureSample_Java.jar'をクラスパスに追加して、Mainクラスへの正規パスが' ' – Noushad

+0

」またはそれは単なるプレースホルダですか? –

+0

@ Noushadこんにちは、どうすればそのメインクラスの絶対パスを確認できますか? –

答えて

2

Javaクラスからバッチファイルを実行すると、バッチファイルの作業ディレクトリはJava環境の作業ディレクトリに継承されます。それを修正する

、あなたは〜DP0%でバッチファイルにあなたのjarファイルの相対パスを設定する必要があります。

@echo off 
set CLASSPATH=%CLASSPATH%;%~dp0\f3bc4jav.jar 
set CLASSPATH=%CLASSPATH%;%~dp0\PalmSecureSample_Java.jar 

@echo on 
java <classname> 
+0

こんにちは!回答ありがとうございます。私はこれを試した。今例外がスローされます。 java.lang.NullPointerExceptionです。 – Kylie

+0

バッチファイルがjarファイルを起動しましたか?呼び出されたjavaプログラムは呼び出し元のjavaプログラムの作業ディレクトリを継承していることに注意してください。 – Stefan

+0

バッチファイル自体はうまく実行されますが、バッチファイルをJavaクラスから実行しようとすると例外がスローされます。 – Kylie

0

こんにちはあなたは `追加

@echo off 
set CLASSPATH=%CLASSPATH%;f3bc4jav.jar 
set CLASSPATH=%CLASSPATH%;PalmSecureSample_Java.jar 

@echo on 
java -cp %CLASSPATH% com.xyz.path.to.MainClass.class 
+0

私の質問にお答えいただきありがとうございます。これを試した後、私は私のコンソールでこの例外を得ました: "スレッドでの例外" main "java.lang.NullPointerException"。 – Kylie

+0

こんにちはKylie、あなたのコードに問題があるからです。機密でない場合は、質問を編集してメインクラスのソースコードを共有してください。 – Noushad

関連する問題