记 win8pro安装jdk8和jdgui遇到报错api-ms-win-crt-runtime-l1-1-0.dll 丢失的终极处理方法(适用于python环境安装)
这次的报错处理想起来比较有意思,过程可以说是比较曲折的,但也是给人很多的启示。一,事情起因因为需要安装jdgui这个软件,看名字就可以知道是图形界面的一个软件,因此,下载的时候,选择了对图形界面支持比较好的Windows版本,从github网站下载下来这个软件后发现,需要jdk8.0环境才可以运行,遂,下载Windows的jdk8版本,因是使用该软件做一个测试,不想把自己的Windows7系统环境
这次的报错处理想起来比较有意思,过程可以说是比较曲折的,但也是给人很多的启示。
一,事情起因
因为需要安装jdgui这个软件,看名字就可以知道是图形界面的一个软件,因此,下载的时候,选择了对图形界面支持比较好的Windows版本,从github网站下载下来这个软件后发现,需要jdk8.0环境才可以运行,遂,下载Windows的jdk8版本,因是使用该软件做一个测试,不想把自己的Windows7系统环境搞乱,因此,使用win8pro虚拟机,以建成一个沙盒系统。
虚拟机的主机信息如下图:
二,win8pro虚拟机的安装
这个没什么好说的,基础的知识,在此不做介绍了。只是有一点需要注意,要安装vmtools,以方便向这个沙盒传送文件。
三, 相关软件的下载(jdgui和jdk8,右键增加TrustedInstall注册表,Visual C++ Redistributable for Visual Studio 2015,44个api文件在test文件夹里)
链接:https://pan.baidu.com/s/1mSppmvoAiFb1oNlkmSsbCg
提取码:jdgu
四,jdk8的安装
环境变量的写入:
(末尾添加 :%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin)
和JAVA_HOME一样,新建一个名为“classpath”的环境变量,变量值为:%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar。如图所示:
不出意外的话,此时cmd里执行 java -version 命令会报错,如下图所示:
这个报错表示Windows的什么api文件没有,遂,百度开始,很多博客都说需要安装某个补丁或者安装vc库Visual C++ Redistributable for Visual Studio 2015 ,这没什么好说的,下载然后安装,可惜,这个vc库并不能正确安装,又报错啦!!!
1、安装vc2015 发行包,最后出错,提示需要先安装KB2999226 补丁。
2、安装KB2999226补丁,又提示需要安装win7 sp1(后来发现win8系统,也有同样问题)。
3、安装win7 sp1时,由于机器长期未正常打开update,安装sp1的时候,又遇到一个新的错误,各种补丁。
因此,可以相信,普通方法是不能解决这个报错的,那么,报错提示api-ms-win-crt-runtime-l1-1-0.dll文件丢失,在win8pro下查找一下,可以看到吗?答案是,肯定没有的。
无意打开网盘,刚好剪切板里是api-ms-win-crt-runtime-l1-1-0.dll,一搜竟然搜到了,这个文件在DOTA2的bin目录里(某次重装系统,把所有软件都备份到百度盘里了~~~~~~~~),遂在宿主机win7里寻找,发现很多软件里都有这个文件,如下图:
因DOTA2还是可以正常运行的,因此,进入DOTA2的bin目录下,拷贝所有api-ms开头的dll ,以及msvcp140.dll,vcruntime140.dll,ucrtbase.dll总计44个文件到c:\windows\system32目录下(这里,为什么是system32目录?因为我的jdk是64位的,如果是32位的jdk,路径是 c:\windows\syswow64目录下)。这里,又出现问题了,无权限复制文件后覆盖文件,
此时,打开任意文件的属性可以看到,最高权限是TrustedInstall这个用户才拥有,而现在登录的用户是administrator,
因此,需要编写一个注册表文件,给鼠标右键添加切换TrustedInstall的功能,此文件的内容如下:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\runas]
@="获取TrustedInstaller权限"
[HKEY_CLASSES_ROOT\*\shell\runas\command]
@="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F"
[HKEY_CLASSES_ROOT\Directory\shell\runas]
@="获取TrustedInstaller权限"
"NoWorkingDirectory"=""
[HKEY_CLASSES_ROOT\Directory\shell\runas\command]
@="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrators:F /t"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrators:F /t"
将以上内容保存到记事本内然后保存为reg文件即可,然后双击运行它。
等待cmd那个黑窗口关闭后就可以正常的复制啦:
jd-gui也可以正常运行啦,此时在安装 Visual C++ Redistributable for Visual Studio 2015 也不会报错啦!!~~~~~~
总结:
很多游戏或者开发工具为了系统适配,都会自带有api文件,也就是那44个文件,如果,你的Windows不能正常工作,到这些软件的bin目录下找齐这44个文件,然后复制到c:\windows\system32目录下,不需要安装任何补丁,你的软件就可以正常运行啦。例如,本例,我使用了宿主机的DOTA2的这些api文件,就可以很好的运行jdk啦,当然了,这里一定要注意,用jdk的bin目录下的这44个文件一样的可以哦。如下图:
执行下载的那个reg文件,然后到c:\windows\system32目录下,将system32文件夹下的每个api开始的文件都右键给予TrustedInstall权限,如下图所示:
可以看到,不需要安装vc2015库或者各种补丁也可以使用jdk啦,是不是十分方便???

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)