0

我能够在命令提示符下获得 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
4

2 回答 2

2

用于SETX在 Windows 中永久设置环境变量。

于 2013-08-27T09:42:13.343 回答
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
)
于 2013-08-27T09:54:36.450 回答