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=

但是,它返回“线程“main”中的异常 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

建议:

@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 回答
1

只需删除空格:

set java=%file%.java

当存在空格时,java变量将为空。或者,您可以使用:

set java = "%file%.java"
于 2012-09-28T21:55:44.000 回答