I've wroten a script to set java homepath/path to use for switching between different versions of java.
I want only want to set path if it doesn't already contains the location string to java's bin folder. As it is now, it adds to path multiple times if i run the script multiple times. How can i acchieve this?
Code
@echo off
echo Setting JAVA_HOME
setx -m JAVA_HOME "C:\Program Files\Java\jdk1.8.0"
echo JAVA_HOME: %JAVA_HOME%
echo setting PATH
setx -m PATH "%Path%;%JAVA_HOME%\bin"
echo PATH: %PATH%
echo Display java version
java -version
pause
Can i use if condition somehow?
Thank you...
EDIT: If i already set a java_homepath and path to java 7 jdk and in the script will set it to java jdk 8 it sets the java_homepath but when setting the path it uses the old java homepath so i need to run the script twice. Why is that and how can this be fixed?
EDIT2:
@echo off
echo Setting JAVA_HOME
setx -m JAVA_HOME "C:\Program Files\Java\jdk1.7.0"
echo JAVA_HOME: %JAVA_HOME%
echo setting PATH
for /f "tokens=* delims=" %%a in ("%JAVA_HOME%\bin") do (
if "%%~dpnfs$PATH:a" EQU "" (
setx -m PATH "%Path%;%JAVA_HOME%\bin"
PATH %PATH%;"%JAVA_HOME%\bin"
)
)
echo PATH: %PATH%
echo Display java version
java -version
pause
With this code it sets java_home but not path (because it uses old java_home), also it does not pause the cmd or displays java version after for loop...