使用bat运行java脚本,“java不被识别为内部命令或外部命令”
好的伙计感谢您尝试调试我。使用bat运行java脚本,“java不被识别为内部命令或外部命令”
我有一个Java脚本,我通常用这个CMD
javac -classpath jxl.jar;..C:\3DWIP\src\; GenerateExcel.java
然后我用这个CMD运行编译。
java -classpath jxl.jar;..C:\3DWIP\src\; GenerateExcel Model.STEPFILE
jxl.jar作为JExcelApi的写入Excel文件和C:\ 3DWIP的\ src \是我的主要()将文件夹。
这个效果很好。
我的问题是,我有一个蝙蝠脚本,在某些时候应该调用javac和java,例如当它调用下面的行 java -classpath jxl.jar; .. C:\ 3DWIP \ SRC \; GenerateExcel Model.STEPFILE
我得到着名的“java不被识别为内部命令或外部命令”。
这是我的系统路径变量
C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Java\jdk1.7.0_67\bin;C:\3DWIP\src;C:\Program Files\Java\jdk1.7.0_67\lib\jexcelapi\jxl.jar;%JAVA_HOME%\bin
这是我的蝙蝠脚本
@echo off
set INPUTFILENAME=%~1
set INPUTFILENAME=%INPUTFILENAME:C:\GENERATOR\=%
set CTWORKFLD=C:\GENERATOR\
set CTINSTDIR=C:\coretechnologie2014\evolution64
set CTSCRIPTFLD=C:\coretechnologie2014\evolution64\scripts
set CTLIBPATH=C:\coretechnologie2014\evolution64\lib64
set EVOLPATH=%CTINSTDIR%
set path=C:\Program Files\Java\jdk1.7.00_67\bin;%EVOLPATH%;%CTLIBPATH%;%CTLIBPATH%\lib3dx\intel_a\code\bin;%UGII_ROOT_DIR%;
rmdir %CTWORKFLD%\out /s /q
mkdir %CTWORKFLD%\out
echo Processing file: %INPUTFILENAME%
echo Exporting Images and Data
"%CTINSTDIR%\evolution.exe" -batch "%CTSCRIPTFLD%\Compute_Properties_and_views.scp" "%CTWORKFLD%\%INPUTFILENAME%" Evolution Step "%CTWORKFLD%\out\%INPUTFILENAME%" "%CTWORKFLD%\out\%INPUTFILENAME%.stp.log"
echo Exporting Done!
echo Generating Excel File
chdir /d C:\3DWIP\src
::javac -classpath C:\Program Files\Java\jdk1.7.0_67\bin;..jxl.jar;..C:\3DWIP\src\; GenerateExcel.java
java -classpath C:\Program Files\Java\jdk1.7.0_67\bin;..jxl.jar;..C:\3DWIP\src\; GenerateExcel %INPUTFILENAME%
echo Closing 1000 secs...
"%windir%\system32\timeout.exe" /t 1000 /nobreak
echo Job Done!
@echo
@echo
请帮助我duno该怎么办了。
的问题可能只是在你的SET PATH
命令一个错字:它是指 C:\Program Files\Java\jdk1.7.00_67
,而你的脚本的其余部分指的是 C:\Program Files\Java\jdk1.7.0_67
。但我想解释一般如何添加东西到PATH
。
在Windows中,SET PATH=
将设置搜索.exe
文件的目录列表。 (在你的情况下,它正在寻找java.exe
。)但是,这样做并不会自动保留以前的PATH
中的目录。这是一个非常简单的命令 - 它只是将变量设置为你给它的字符串。
要添加目录到PATH
,同时保持以前的目录,使用如下命令
SET PATH=<dir1>;<dir2>;<dir3>;%PATH%
或
SET PATH=%PATH%;<dir1>;<dir2>;<dir3>
你使用哪一种会有所作为,如果有一个.exe
文件在多个路径目录中,因为Windows将查看目录以查找要查找的.exe
文件。在很多情况下,顺序并不重要。
如果您正在使用Windows 7或8,这些步骤将设置永久性Java类路径。 (i)打开你的“系统属性”对话框。点击左侧窗格中的“高级系统设置”选项。 (ii)在以下窗口中,导航到“高级”选项卡。您现在将看到“环境变量...“按钮,单击它。
(III)在另一个下面的窗口,如果你找到一个‘路径’变量,只需双击它。
(四)在‘编辑系统变量’窗口中,键入您的Java bin目录路径,对于大多数情况下,“C:\ Program Files \ Java \ jdk1.7.0_45 \ bin;”或者你也可以输入“%ProgramFiles%\ Java \ jdk1.7.0_45 \ bin;”。在Java目录中,因为版本不同,所以请确保它注意路径末尾的分号,因为它是必须的,并且如果Java类路径在Path变量中的另一个路径后面,则将分号放在它的前面(v)现在,点击“确定”关闭所有打开的窗口。
这些步骤比在“命令行”上做得更有效,因为只要打开“命令提示符”,命令行就会保留这些设置。
您是否设置了%JAVA_HOME%?如果是,你检查过了吗? – 2014-11-03 20:42:03
该消息表示Windows无法找到'java.exe'。你的'.bat'脚本改变了'PATH'。显然'java.exe'不存在于该路径上的任何目录中,但确实存在于之前使用的'PATH'中的某个目录中。如果'java.exe'确实存在于新PATH中的某个目录中,请澄清。 – ajb 2014-11-03 20:46:13
尝试使用'C:\ Program Files(x86)\ Java \ jdk _ * \ bin \ java.exe args',直接引用java.exe路径或包含jre。 – TameHog 2014-11-03 20:51:51