通过脚步改变path环境变量来实现java多版本切换.这里使用的是Win10.
在安装高版本的java时,会添加一个路径到path环境变量中,如我的C:\Program Files\Common Files\Oracle\Java\javapath,在该目录下存有java.exe和javac.exe等.在用cmd执行命令时,cmd会在path变量包含的路径中查找.你需要在环境变量中删除该路径.
在环境变量中添加JAVA_HOME,值为jdk的安装路径,如下图:

在path变量中添加一条%JAVA_HOME%\bin.通过%变量名%的方式来调用变量,这里有点像字符串拼接.在%JAVA_HOME%\bin下,你可以找到java.exe与javac.exe.在path中添加后,cmd也能找到.
这里后来安装了java8.它的安装过程中不会自动改变环境变量,如果你安装的是其他版本,可能需要留意这个问题,删除新加的路径以免产生干扰.
文件名:setjava8.bat,内容如下
@echo off
set JAVA_HOME=D:\Program Files\Java\jdk1.8.0_201
set Path=%JAVA_HOME%\bin;%Path%
echo -------path环境未使用C:\Program Files\Common Files\Oracle\Java\javapath---
echo -------setjava8.bat位于system32中---
echo -------JAVA_HOME=%JAVA_HOME%----
echo -------Java8 activated,仅当前窗口有效---
它的作用:改变JAVA_HOME的值,重新拼接一个路径到path变量值,严格来讲是覆盖与原有的path.
ehco的作用是在命令行打印字符.
你可以把setjava8.bat文件放在path中包含的路径下.当然, 得是改变前的path变量的路径.我把他放在在\windows\system32中,这是path变量中原有的路径.这个目录有特殊的权限规则.
你甚至可以把他放在%JAVA_HOME%\bin下.这要求你的路径设置是正确的,以便在改变%JAVA_HOME%\bin前可以找到.
如果你有需求,可以对文件内容进行修改,比如改改echo 后面的内容.
如果你看懂了.bat文件里的内容,会发现核心就两句:
set JAVA_HOME=D:\Program Files\Java\jdk1.8.0_201 set Path=%JAVA_HOME%\bin;%Path%
如果你只需要在命令行执行,可以缩成一句:
set Path=D:\Program Files\Java\jdk1.8.0_201\bin;%Path%
不过JAVA_HOME有特殊的意义.
它们的目的是在找到java16的java.exe等文件之前先在java8里找到了.这使得cmd在执行java -version时,使用的是java8
如果你完成了,使用效果是这样的:

如果打开环境变量设置?
你可以在文件资源管理器的此电脑上右击,点属性,打开设置.在设置->高级系统设置中可以找.
或者使用搜索,搜env可以找到
修改的环境变量没有生效?
第一,确保你已经保存
第二,确保cmd是新开的一个。因为可能有缓存的问题
第三,再次确认你没有设置错误,毕竟错了它也不报错
生效的范围?
仅当前窗口有效,新开的是没有经过效果的。所以一开始的%JAVA_HOME%\bin需是正常的,这决定默认使用的java版本.
set命令可以在打印所有的环境变量,可以使用
set | findstr -i java命令察看有关的环境变量还确认这件事。我觉得你没有这么闲,除非你第一次见或出错了~
变量后面要不要加\?
设置的时候你也疑惑要不要在%JAVA_HOME%后加
\.要加的,因为路径的后面没有\,拼接的时候就得加上。当年因为在.bat里末尾多加了一个\,出现\\bin的情况。
改了有啥用呢?
一般集成开发环境是支持多版本的.
这种通过脚本改环境变量的方法 能力有限.
冰蝎3需要java8的运行时环境,你可以这样用:
java -jar ???
冰蝎4虽然可以在java16中也可以打开,似乎会莫名地卡.让我回想起当前玩英雄联盟时电脑总是突然死机的光景(#`-_ゝ-)
乱码?其实我没有啦
因为cmd的字符集是utf-8.在读utf-8编码的文件时会正常显示。
cmd默认的字符集似乎是GBK.如果你有需要,可以到网上找找怎么改.
乱码问题不大,毕竟大多数字符集中没人抢那52个英文字母的位置,程序还能运行.
其他问题?
没了没了,我想不到了.如果还有,你得去找他人的文章或视频了.计算机玄学总是会碰到的, 实在不行,你可以重来一次(¬‿¬)
我在我的Rails项目中使用Pow和powifygem。现在我尝试升级我的ruby版本(从1.9.3到2.0.0,我使用RVM)当我切换ruby版本、安装所有gem依赖项时,我通过运行railss并访问localhost:3000确保该应用程序正常运行以前,我通过使用pow访问http://my_app.dev来浏览我的应用程序。升级后,由于错误Bundler::RubyVersionMismatch:YourRubyversionis1.9.3,butyourGemfilespecified2.0.0,此url不起作用我尝试过的:重新创建pow应用程序重启pow服务器更新战俘
我真的很习惯使用Ruby编写以下代码:my_hash={}my_hash['test']=1Java中对应的数据结构是什么? 最佳答案 HashMapmap=newHashMap();map.put("test",1);我假设? 关于java-等价于Java中的RubyHash,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/22737685/
我正在尝试修改当前依赖于定义为activeresource的gem:s.add_dependency"activeresource","~>3.0"为了让gem与Rails4一起工作,我需要扩展依赖关系以与activeresource的版本3或4一起工作。我不想简单地添加以下内容,因为它可能会在以后引起问题:s.add_dependency"activeresource",">=3.0"有没有办法指定可接受版本的列表?~>3.0还是~>4.0? 最佳答案 根据thedocumentation,如果你想要3到4之间的所有版本,你可以这
如果我使用ruby版本2.5.1和Rails版本2.3.18会怎样?我有基于rails2.3.18和ruby1.9.2p320构建的rails应用程序,我只想升级ruby的版本,而不是rails,这可能吗?我必须面对哪些挑战? 最佳答案 GitHub维护apublicfork它有针对旧Rails版本的分支,有各种变化,它们一直在运行。有一段时间,他们在较新的Ruby版本上运行较旧的Rails版本,而不是最初支持的版本,因此您可能会发现一些关于需要向后移植的有用提示。不过,他们现在已经有几年没有使用2.3了,所以充其量只能让更
我安装了ruby版本管理器,并将RVM安装的ruby实现设置为默认值,这样'哪个ruby'显示'~/.rvm/ruby-1.8.6-p383/bin/ruby'但是当我在emacs中打开inf-ruby缓冲区时,它使用安装在/usr/bin中的ruby。有没有办法让emacs像shell一样尊重ruby的路径?谢谢! 最佳答案 我创建了一个emacs扩展来将rvm集成到emacs中。如果您有兴趣,可以在这里获取:http://github.com/senny/rvm.el
我正在尝试使用boilerpipe来自JRuby。我看过guide从JRuby调用Java,并成功地将它与另一个Java包一起使用,但无法弄清楚为什么同样的东西不能用于boilerpipe。我正在尝试基本上从JRuby中执行与此Java等效的操作:URLurl=newURL("http://www.example.com/some-location/index.html");Stringtext=ArticleExtractor.INSTANCE.getText(url);在JRuby中试过这个:require'java'url=java.net.URL.new("http://www
我只想对我一直在思考的这个问题有其他意见,例如我有classuser_controller和classuserclassUserattr_accessor:name,:usernameendclassUserController//dosomethingaboutanythingaboutusersend问题是我的User类中是否应该有逻辑user=User.newuser.do_something(user1)oritshouldbeuser_controller=UserController.newuser_controller.do_something(user1,user2)我
什么是ruby的rack或python的Java的wsgi?还有一个路由库。 最佳答案 来自Python标准PEP333:Bycontrast,althoughJavahasjustasmanywebapplicationframeworksavailable,Java's"servlet"APImakesitpossibleforapplicationswrittenwithanyJavawebapplicationframeworktoruninanywebserverthatsupportstheservletAPI.ht
有人知道在发布新版本的Ruby和Rails时收到电子邮件的方法吗?他们有邮件列表,RubyonRails有一个推特,但我不想听到那些随之而来的喧嚣,我只想知道什么时候发布新版本,尤其是那些有安全修复的版本。 最佳答案 从therailsblog获取提要.http://weblog.rubyonrails.org/feed/atom.xml 关于ruby-on-rails-如何在发布新的Ruby或Rails版本时收到通知?,我们在StackOverflow上找到一个类似的问题:
在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList()Obt