Java 批处理文件错误-线程中出现异常;“主要”;但在没有批处理文件的情况下编译和运行良好
我正在尝试创建一个批处理文件来自动编译和执行java程序。以下是我的批处理脚本:Java 批处理文件错误-线程中出现异常;“主要”;但在没有批处理文件的情况下编译和运行良好,java,batch-file,Java,Batch File,我正在尝试创建一个批处理文件来自动编译和执行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
@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时,它也可以很好地运行。有什么建议吗?谢谢
set
不允许在=
周围使用空格:
set java=%file%.java
set
不允许在=
周围使用空格:
set java=%file%.java
建议:
@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
建议:
@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
只需删除空格:
set java=%file%.java
当空格存在时,java
变量将为空。或者,您可以使用:
set java = "%file%.java"
只需删除空格:
set java=%file%.java
当空格存在时,java
变量将为空。或者,您可以使用:
set java = "%file%.java"
HelloWorld文件是否位于x:\?否则,您可能需要传递一个classpath或sourcepath选项(),您如何处理
%=%
业务?HelloWorld文件是否位于x:\?否则,您可能需要传递一个classpath或sourcepath选项(),您使用%=%
business?+1做什么,但从技术上讲,SET确实允许空格。=
之前的空格将成为变量名的一部分,=
之后的空格将成为值的一部分。+1,但从技术上讲,SET允许空格。=
之前的空格将成为变量名的一部分,而=
之后的空格将成为值的一部分。