0

Java プログラムのコンパイルと実行を自動化するバッチ ファイルを作成しようとしています。ここに私のバッチスクリプトがあります:

@echo off
cd X:\
echo Compile/Execute Java
echo Author: Phil Eaton
echo Created: 09-28-2012
set /P file=File name: %=%
set java = %file%.java
javac %java%
java %file%
set /P quit=

ただし、「スレッド「メイン」での例外 java.lang.NoClassDefFoundError: HelloWorld」が返されます。HelloWorld はユーザー入力です。ただし、コマンド プロンプトで javac HelloWorld.java を実行すると正常にコンパイルされ、Java HelloWorld を実行すると正常に実行されます。助言がありますか?ありがとう!

4

3 に答える 3

2

setの前後にスペースは許可されません=:

set java=%file%.java 
于 2012-09-28T21:54:26.827 に答える
1

スペースを削除するだけです:

set java=%file%.java

スペースが存在する場合、java変数は空になります。または、次を使用できます。

set java = "%file%.java"
于 2012-09-28T21:55:44.000 に答える
1

提案:

@rem Compile and run Java program
@if "%1"=="" goto USAGE

javac %1%.java
java %1%
@goto THE_END

:USAGE
@echo EXAMPLE USAGE: doit HelloJava
@goto THE_END

:THE_END
于 2012-09-28T21:54:51.403 に答える