好的伙计感谢您试图调试我。
我有一个java脚本,我通常用这个cmd编译
javac -classpath jxl.jar;..C:\3DWIP\src\; GenerateExcel.java
然后我用这个cmd运行它。
java -classpath jxl.jar;..C:\3DWIP\src\; GenerateExcel Model.STEPFILE
jxl.jar是用于编写EXCEL文件的JExcelAPI,而C:\ 3DWIP \ src \是我的Main()所在的文件夹。
这很有效。
我的问题是我有一个bat脚本,在某些时候应该调用javac和java,例如当它调用以下行时 java -classpath jxl.jar; .. C:\ 3DWIP \ src \; GenerateExcel Model.STEPFILE
我得到了着名的#34; 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再做什么。
答案 0 :(得分:0)
问题可能只是你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
文件。在许多情况下,订单无关紧要。
答案 1 :(得分:0)
如果您使用的是Windows 7或8,那么这些步骤就是将Java类路径设置为永久性的。
(i)打开“系统属性”对话框。单击左侧窗格中的“高级系统设置”选项。
(ii)在以下窗口中,导航至“高级”选项卡。您现在将看到“环境变量...”按钮并单击它。
(iii)在下面的另一个窗口中,如果找到“路径”变量,只需双击即可。
(iv)在“编辑系统变量”窗口中,键入Java bin目录路径。对于大多数情况,“C:\ Program Files \ Java \ jdk1.7.0_45 \ bin;”或者您也可以输入“%ProgramFiles%\ Java \ jdk1.7.0_45 \ bin;”。由于版本不同,路径可能会在Java目录中发生更改。所以,确保它。请注意路径末尾的分号,如果Java类路径位于Path变量中的另一个路径之后,则将分号放在其前面。
(v)现在,单击“确定”关闭所有打开的窗口。
这些步骤比在“命令行”上进行更有效,因为只要打开“命令提示符”,命令行就会保留这些设置。