我可以在命令提示符下获取PATH和JAVA_HOME。但是当我看到环境变量时,我无法在控制面板\系统和安全\系统\高级系统属性\变量中设置这些变量............我认为代码不会永久设置它们。如果我第二次双击批处理文件,则显示“找不到java.exe”的消息。
我无法弄清楚我错过了哪里或错误地编写代码? 我正在使用Windows 7
代码尝试: -
@echo off
SET JAVA_HOME=
for /f %%j in ("java.exe") do set JAVA_HOME=%%~dp$PATH:j
IF DEFINED JAVA_HOME GOTO :JAVA_FOUND
:JAVA_NOT_FOUND
@echo java.exe not found
PAUSE
CD C:\Users\Pathfinder\Desktop
ECHO "Time In"
jdk-6u43-windows-i586.exe /s "/v\"/qn ADDLOCAL=ALL REBOOT=Suppress JAVAUPDATE=0
CUSTOM=1\""
timeout /t 10 /nobreak
ECHO "Time Out"
set path="C:\Program Files (x86)\Java\jre6\bin";%path%
@echo PATH= %path%
set JAVA_HOME="C:\Program Files (x86)\Java\jdk1.6.0_43\bin";%JAVA_HOME%
@echo JAVA_HOME = %JAVA_HOME%
GOTO :END
:JAVA_FOUND
@echo JAVA_HOME = %JAVA_HOME%
ECHO "ok1"
PAUSE
@echo JAVA_HOME = %JAVA_HOME%
PAUSE
:END
答案 0 :(得分:2)
使用SETX
在Windows中永久设置环境变量。
答案 1 :(得分:1)
这是答案。因为我在Windows 7上工作所以setx在这里工作。 它将设置您的环境变量。
@echo off
for /f %%j in ("java.exe") do (
set JAVA_HOME=%%~dp$PATH:j
)
if %JAVA_HOME%.==. (
@echo java.exe not found
PAUSE
CD C:\Users\Pathfinder\Desktop
jdk-6u43-windows-i586.exe /s "/v\"/qn ADDLOCAL=ALL REBOOT=Suppress JAVAUPDATE=0
CUSTOM=1\""
setx PATH "%path%;C:\Progra~2\Java\jdk1.6.0_43\bin"
setx JAVA_HOME "C:\Progra~2\Java\jdk1.6.0_43"
) else (
@echo JAVA_HOME = %JAVA_HOME%
PAUSE
)