bac*_*chr 34 java java-7 java-8
我在我的Windows 7机器上安装了JDK 1.7,安装JDK 1.8 u20后,我遇到以下错误:
C:\>java -version
Error: Registry key 'Software\JavaSoft\Java Runtime Environment'\CurrentVersion'
has value '1.8', but '1.7' is required.
Error: could not find java.dll
Error: Could not find Java SE Runtime Environment.
Run Code Online (Sandbox Code Playgroud)
我的PATH
变量指向旧版本(即1.7).
这里有什么问题以及我如何使用java 8和java 7?
Chr*_*ris 68
问题是Java 8会安装很多你并不需要的东西:
\ windows\system32包含Java 8 java.exe,javaw.exe和javaws.exe.你的路径可能在开头附近有system32,所以这些往往是默认运行的.
系统路径变量以C:\ programdata\Oracle\Java\javapath开头.此文件夹包含java.exe,javaw.exe和javaws.exe作为JRE 8可执行文件的符号链接.
我删除了system32文件,并从系统路径中删除了C:\ programdata\Oracle\Java\javapath.这似乎解决了这个问题.我现在可以通过将JAVA_HOME和PATH指向相应的文件夹来切换版本.
看起来,Oracle决心让很难运行多个版本.这对于JRE来说是可以理解的,但是对于JDK来说这很疯狂,因为开发人员几乎总是需要多个版本的Java.
编辑:我发现这个批处理脚本对切换JDK非常有用.用法:jdk.bat 6 | 7 | 8.您可能必须编辑Java的安装位置.
@echo off
if "%1"=="" goto report
set _version=%1
shift
if "%1"=="DBG" shift & echo on
set _command=%1 %2 %3 %4 %5
set _jdkdir=
set _jdkver=
for /D %%f in ("C:\Program Files\java\"jdk1.%_version%.*) do call :found "%%f"
if "%_jdkdir%"=="" goto notfound
set java_home=C:\Program Files\java\%_jdkdir%
call :javapath
path %new_path%
goto :report
:javapath
setlocal enabledelayedexpansion
set _jdirs=
for /D %%j in ("C:\Program Files\java\*") do set _jdirs=!_jdirs!#%%~fj\bin
set _jdirs=%_jdirs%#
set _javabin=%java_home%\bin
set _fpath="%PATH:;=" "%"
call :checkpath %_fpath%
endlocal & set new_path=%_javabin%
goto :eof
:checkpath
if _%1==_ goto :eof
echo %_jdirs% | find /i "#%~1#" 1>nul 2>&1
set _err=%errorlevel%
if not %_err%==0 set _javabin=%_javabin%;%~1
if %_err%==0 echo Removed %~1 from path
shift
goto :checkpath
:report
javac -version
%_command%
goto :eof
:notfound
echo No JDK matching [C:\Program Files\java\jdk1.%_version%.*] found.
goto :eof
:found
set _jdkdir=%~n1%~x1
for /F "tokens=2,3 delims=." %%a in ("%_jdkdir%") do set _jdkver=1.%%a.%%b
goto :eof
Run Code Online (Sandbox Code Playgroud)
小智 12
在"开始"菜单中键入"regedit"以打开注册表编辑器
转到左侧注册表资源管理器/树状菜单中的"HKEY_LOCAL_MACHINE"
单击"HKEY_LOCAL_MACHINE"注册表中的"SOFTWARE"
单击"SOFTWARE"注册表中的"JavaSoft"
单击"JavaSoft"注册表列表中的"Java Runtime Environment",可以看到已安装java的不同版本
单击"Java Runtime Environment" - 在右侧,您将获得4-5行.请选择"CurrentVersion"并右键单击(选择修改选项)将版本更改为"1.7"
现在魔术已经完成了
归档时间: |
|
查看次数: |
47449 次 |
最近记录: |