-
2018-07-29 17:42:50
大家想了解一下另外一种简单的方法,可以参考我的上一篇博客
这Maven 教程:IDEA开发环境中maven 项目配置JDK9,JDK10,JDK11,JDK12..等EA版本的配置方法 系列教程一这里我们思考我们上一个配置方式的问题。
首先我们需要修改JAVA_HOME配置,有些人会说,可以不用。但是还是得配置IDEA中Project的配置信息。那么有没有其它办法,使得我能够更快的修改。答案是有的。我们来看看,这里我们举例使用JDK11作为例子,之所以使用JDK11,是希望大家能够举一反三,JDK11目前还不是发行版,笔者使用的是OpenJdk,下面提供下载地址。实际项目中配置方式大同小异,下载后解压到自己电脑上的某一个目录即可。后面我会贴出其他版本的配置方法
http://jdk.java.net/12/
http://jdk.java.net/11/
http://jdk.java.net/10/步骤一:
在~/.m2/目录下新增一个toolchains.xml配置文件里面的内容如下,这个目录一般是C:\Users\Administrator如果你登录的用户名不是这个Administrator请自己替换成其他。.m2目录不存在,说明你还没有装好maven
参考本人的另外一个博客https://blog.csdn.net/blueboz/article/details/61415164<toolchains> <toolchain> <type>jdk</type> <provides> <version>11</version> <vendor>sun</vendor> </provides> <configuration> <jdkHome>C:/Program Files/Java/jdk-11</jdkHome> </configuration> </toolchain> </toolchains>
所在目录示意图
步骤二,在项目中的pom.xml中配置
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-toolchains-plugin</artifactId> <configuration> <toolchains> <jdk> <version>11</version> <vendor>oracle</vendor> </jdk> </toolchains> </configuration> <executions> <execution> <goals> <goal>toolchain</goal> </goals> </execution> </executions> </plugin>
还有这个
<properties> <maven.compiler.source>11</maven.compiler.source> <maven.compiler.target>11</maven.compiler.target> <maven.compiler.release>11</maven.compiler.release> </properties>
测试
依旧是maven 插件的compile
全版本toolchains
<toolchains> <!-- JDK toolchains --> <toolchain> <type>jdk</type> <provides> <version>1.9</version> <vendor>sun</vendor> </provides> <configuration> <jdkHome>C:/Program Files/Java/jdk-9</jdkHome> </configuration> </toolchain> <toolchain> <type>jdk</type> <provides> <version>10</version> <vendor>sun</vendor> </provides> <configuration> <jdkHome>C:/Program Files/Java/jdk-10.0.2</jdkHome> </configuration> </toolchain> <toolchain> <type>jdk</type> <provides> <version>1.8</version> <vendor>sun</vendor> </provides> <configuration> <jdkHome>C:/Program Files/Java/jdk1.8.0_144</jdkHome> </configuration> </toolchain> <toolchain> <type>jdk</type> <provides> <version>12</version> <vendor>sun</vendor> </provides> <configuration> <jdkHome>C:/Program Files/Java/jdk-12</jdkHome> </configuration> </toolchain> <toolchain> <type>jdk</type> <provides> <version>11</version> <vendor>sun</vendor> </provides> <configuration> <jdkHome>C:/Program Files/Java/jdk-11</jdkHome> </configuration> </toolchain> </toolchains>
注意修改pom.xml文件后一个要reimport project 重新导入项目,否则会无效果
参考链接
http://maven.apache.org/guides/mini/guide-using-toolchains.html
更多相关内容 -
jdk9、jdk10、jdk11、jdk12、jdk13新特性
2019-10-28 09:03:22我们绝大部分人估计都还在用着jdk8,12其实是一个非LTS(long time support)版本,而11与8一样是LTS版,意味着下个通用的版本将从8直接到11,毕竟11包含了9和10的所有新特性,因此9和10估计就直接被废弃啦。...我们绝大部分人估计都还在用着jdk8,12其实是一个非LTS(long time support)版本,而11与8一样是LTS版,意味着下个通用的版本将从8直接到11,毕竟11包含了9和10的所有新特性,因此9和10估计就直接被废弃啦。不过9、10、11、12面向开发者的新特性其实并不是很多,大部分都是一些优化、收集器加强以及增加了一些新功能等等
而我们开发人员最为关注的肯定是对我们搬砖有用的特性,虽然可能还用不太上,但这边还是先记录一下从jdk9-12的新特性:
jdk9新特性
1、集合加强jdk9为所有集合(List/Set/Map)都增加了of和copyOf方法,用来创建不可变集合,即一旦创建就无法再执行添加、删除、替换、排序等操作,否则将报java.lang.UnsupportedOperationException异常。一般在特定场景下用还是可以的,不过如果引用了guava库的话推荐还是使用guava把hhhh,例子如下:
List strs = List.of("Hello", "World");
List strsCopy = List. copyOf(strs);
Set strs = Set.of("Hello", "World");
Map maps = Map.of("Hello", 1, "World", 2);
2、私有接口方法jdk8提供了接口的默认方法(default)和静态方法,打破了之前接口只能定义方法而不能存在行为。jdk9则是允许接口定义私有方法,私有方法可以作为通用方法放在默认方法中调用,不过实际中并无多大用处,至少对我来说。
3、垃圾收集机制
jdk9把G1作为默认的垃圾收集器实现,替换了jdk7和jdk8的默认垃圾收集器实现:Parallel Scavenge(新生代)+Parallel Old(老年代)。
4、I/O流加强
java.io.InputStream 中增加了新的方法来读取和复制 InputStream 中包含的数据:
readAllBytes:读取 InputStream 中的所有剩余字节
readNBytes: 从 InputStream 中读取指定数量的字节到数组中
transferTo:读取 InputStream 中的全部字节并写入到指定的 OutputStream 中
5、JShell工具
jdk9引入了jshell这个交互性工具,让Java也可以像脚本语言一样来运行,可以从控制台启动 jshell ,在 jshell 中直接输入表达式并查看其执行结果。当需要测试一个方法的运行效果,或是快速的对表达式进行求值时,jshell 都非常实用。举个例子:
jdk10新特性
1、局部变量类型推断局部变量类型推断可以说是jdk10中最值得注意的特性,这是Java语言开发人员为了简化Java应用程序的编写而采取的又一步,举个例子:
原先我们需要这么定义一个list
List<String> list = new ArrayList<>();
使用局部类型推断var关键词定义var list = new ArrayList<String>();
不过局部变量类型推断仅仅适用在:有初始化值的局部变量
增强 for 循环中的索引
传统 for 循环中声明的局部变量
Oracle 的 Java 团队申明,以下不支持局部变量类型推断:
方法参数
构造函数参数
方法返回类型
字段
catch 代码块(或任何其他类型的变量声明)
2、线程本地握手
jdk10将引入一种在线程上执行回调的新方法,因此这将会很方便能停止单个线程而不是停止全部线程或者一个都不停。说实话并不是很懂是什么意思...
3、GC改进和内存管理
jdk10中有2个JEP专门用于改进当前的垃圾收集元素。
第一个垃圾收集器接口是(JEP 304),它将引入一个纯净的垃圾收集器接口,以帮助改进不同垃圾收集器的源代码隔离。
预定用于Java 10的第二个JEP是针对G1的并行完全GC(JEP 307),其重点在于通过完全GC并行来改善G1最坏情况的等待时间。G1是Java 9中的默认GC,并且此JEP的目标是使G1平行。
jdk11新特性
1、字符串加强// 判断字符串是否为空白
" ".isBlank(); // true
// 去除首尾空格
" Javastack ".strip(); // "Javastack"
// 去除尾部空格
" Javastack ".stripTrailing();
// 去除首部空格
" Javastack ".stripLeading(); // "Javastack "
// 复制字符串
"Java".repeat(3); // "JavaJavaJava"
// 行数统计
"A\nB\nC".lines().count(); // 3
2、HttClient Api这是 Java 9 开始引入的一个处理 HTTP 请求的的孵化 HTTP Client API,该 API 支持同步和异步,而在 Java 11 中已经为正式可用状态,你可以在java.net包中找到这个 Api
3、用于 Lambda 参数的局部变量语法
用于 Lambda 参数的局部变量语法简单来说就是支持类型推导:
var x = new A();
for (var x : xs) { ... }
try (var x = ...) { ... } catch ...
4、ZGC从JDK 9开始,JDK使用G1作为默认的垃圾回收器。G1可以说是GC的一个里程碑,G1之前的GC回收,还是基于固定的内存区域,而G1采用了一种“细粒度”的内存管理策略,不在固定的区分内存区域属于surviors、eden、old,而我们不需要再去对于年轻代使用一种回收策略,老年代使用一种回收策略,取而代之的是一种整体的内存回收策略。这种回收策略在我们当下cpu、内存、服务规模都越来越大的情况下提供了更好的表现,而这一代ZGC更是有了突破性的进步。
从原理上来理解,ZGC可以看做是G1之上更细粒度的内存管理策略。由于内存的不断分配回收会产生大量的内存碎片空间,因此需要整理策略防止内存空间碎片化,在整理期间需要将对于内存引用的线程逻辑暂停,这个过程被称为"Stop the world"。只有当整理完成后,线程逻辑才可以继续运行,一般而言,主要有如下几种方式优化"Stop the world":
使用多个线程同时回收(并行回收)
回收过程分为多次停顿(增量回收)
在程序运行期间回收,不需要停顿或只停顿很短时间(并发回收)
只回收内存而不整理内存
ZGC主要采用的是并发回收的策略,相较于G1 ZGC最主要的提升是使用Load Barrier技术实现,引用R大对于ZGC的评价:与标记对象的传统算法相比,ZGC在指针上做标记,在访问指针时加入Load Barrier(读屏障),比如当对象正被GC移动,指针上的颜色就会不对,这个屏障就会先把指针更新为有效地址再返回,也就是,永远只有单个对象读取时有概率被减速,而不存在为了保持应用与GC一致而粗暴整体的Stop The World。
jdk12新特性
1、Switch Expressions这是一个为开发者准备的特性,我们可以利用具体代码快速了解一下,下面是传统 statement 形式的 switch 语法:
switch (day) {
case MONDAY:
case FRIDAY:
case SUNDAY:
System.out.println(6);
break;
case TUESDAY:
System.out.println(7);
break;
case THURSDAY:
case SATURDAY:
System.out.println(8);
break;
case WEDNESDAY:
System.out.println(9);
break;
}
如果有编码经验,你一定知道,switch 语句如果漏写了一个 break,那么逻辑往往就跑偏了,这种方式既繁琐,又容易出错。如果换成 switch 表达式,Pattern Matching 机制能够自然地保证只有单一路径会被执行,请看下面的代码示例:switch (day) {
case MONDAY, FRIDAY, SUNDAY -> System.out.println(6);
case TUESDAY -> System.out.println(7);
case THURSDAY, SATURDAY -> System.out.println(8);
case WEDNESDAY -> System.out.println(9);
}
更进一步,下面的表达式,为我们提供了优雅地表达特定场合计算逻辑的方式int numLetters = switch (day) {
case MONDAY, FRIDAY, SUNDAY -> 6;
case TUESDAY -> 7;
case THURSDAY, SATURDAY -> 8;
case WEDNESDAY -> 9;
};
Switch Expressions 或者说起相关的 Pattern Matching 特性,为我们提供了勾勒出了 Java 语法进化的一个趋势,将开发者从复杂繁琐的低层次抽象中逐渐解放出来,以更高层次更优雅的抽象,既降低代码量,又避免意外编程错误的出现,进而提高代码质量和开发效率。2、Shenandoah GC
新增了一个名为 Shenandoah 的 GC 算法,通过与正在运行的 Java 线程同时进行 evacuation 工作来减少 GC 暂停时间。使用 Shenandoah 的暂停时间与堆大小无关,这意味着无论堆是 200 MB 还是 200 GB,都将具有相同的暂停时间。
JDK13新特性JDK13于9月17日正式发布。目前该版本包含的特性已经全部固定,主要包含以下五个:
下面来逐一介绍下这五个重要的特性。
Dynamic CDS Archives
这一特性是在JEP310:Application Class-Data Sharing基础上扩展而来的,Dynamic CDS Archives中的CDS指的就是Class-Data Sharing。
那么,这个JEP310是个啥东西呢?
我们知道在同一个物理机/虚拟机上启动多个JVM时,如果每个虚拟机都单独装载自己需要的所有类,启动成本和内存占用是比较高的。所以Java团队引入了CDS的概念,通过把一些核心类在每个JVM间共享,每个JVM只需要装载自己的应用类,启动时间减少了,另外核心类是共享的,所以JVM的内存占用也减少了。
CDS 只能作用于 Boot Class Loader 加载的类,不能作用于 App Class Loader 或者自定义的 Class Loader 加载的类。
在 Java 10 中,则将 CDS 扩展为 AppCDS,顾名思义,AppCDS 不止能够作用于 Boot Class Loader了,App Class Loader 和自定义的 Class Loader 也都能够起作用,大大加大了 CDS 的适用范围。也就说开发自定义的类也可以装载给多个JVM共享了。
Java 10中包含的JEP310的通过跨不同Java进程共享公共类元数据来减少了内存占用和改进了启动时间。
但是,JEP310中,使用AppCDS的过程还是比较复杂的,需要有三个步骤:
这一次的JDK 13中的JEP 350 ,在JEP310的基础上,又做了一些扩展。允许在Java应用程序执行结束时动态归档类,归档类将包括默认的基础层 CDS(class data-sharing)存档中不存在的所有已加载的应用程序类和库类。也就是说,在Java 13中再使用AppCDS的时候,就不在需要这么复杂了。
ZGC: Uncommit Unused Memory
在讨论这个问题之前,想先问一个问题,JVM的GC释放的内存会还给操作系统吗?
GC后的内存如何处置,其实是取决于不同的垃圾回收器的。因为把内存还给OS,意味着要调整JVM的堆大小,这个过程是比较耗费资源的。
在JDK 11中,Java引入了ZGC,这是一款可伸缩的低延迟垃圾收集器,但是当时只是实验性的。并且,ZGC释放的内存是不会还给操作系统的。
而在Java 13中,JEP 351再次对ZGC做了增强,本次 ZGC 可以将未使用的堆内存返回给操作系统。之所以引入这个特性,是因为如今有很多场景中内存是比较昂贵的资源,在以下情况中,将内存还给操作系统还是很有必要的:
1、那些需要根据使用量付费的容器
2、应用程序可能长时间处于空闲状态并与许多其他应用程序共享或竞争资源的环境。
3、应用程序在执行期间可能有非常不同的堆空间需求。例如,启动期间所需的堆可能大于稍后在稳定状态执行期间所需的堆。
Reimplement the Legacy Socket API
使用易于维护和调试的更简单、更现代的实现替换 java.net.Socket 和 java.net.ServerSocket API。
java.net.Socket和java.net.ServerSocket的实现非常古老,这个JEP为它们引入了一个现代的实现。现代实现是Java 13中的默认实现,但是旧的实现还没有删除,可以通过设置系统属性jdk.net.usePlainSocketImpl来使用它们。
运行一个实例化Socket和ServerSocket的类将显示这个调试输出。这是默认的(新的).
上面输出的sun.nio.ch.NioSocketImpl就是新提供的实现。如果使用旧的实现也是可以的(指定参数jdk.net.usePlainSocketImpl):
上面的结果中,旧的实现java.net.PlainSocketImpl被用到了。Switch Expressions (Preview)
在JDK 12中引入了Switch表达式作为预览特性。JEP 354修改了这个特性,它引入了yield语句,用于返回值。这意味着,switch表达式(返回值)应该使用yield, switch语句(不返回值)应该使用break。
在以前,我们想要在switch中返回内容,还是比较麻烦的,一般语法如下:
在JDK13中使用以下语法:
或者
在这之后,switch中就多了一个关键字用于跳出switch块了,那就是yield,他用于返回一个值。和return的区别在于:return会直接跳出当前循环或者方法,而yield只会跳出当前switch块。Text Blocks (Preview)
在JDK 12中引入了Raw String Literals特性,但在发布之前就放弃了。这个JEP在引入多行字符串文字(text block)在意义上是类似的。
text block,文本块,是一个多行字符串文字,它避免了对大多数转义序列的需要,以可预测的方式自动格式化字符串,并在需要时让开发人员控制格式。
我们以前从外部copy一段文本串到Java中,会被自动转义,如有一段以下字符串:
将其复制到Java的字符串中,会展示成以下内容:使用“”“作为文本块的开始符合结束符,在其中就可以放置多行的字符串,不需要进行任何转义。看起来就十分清爽了。
如常见的SQL语句:
看起来就比较直观,清爽了。JDK13中包含的5个特性,能够改变开发者的编码风格的主要有Text Blocks和Switch Expressions两个新特性,但是这两个特性还处于预览阶段。
而且,JDK13并不是LTS(长期支持)版本,如果你正在使用Java 8(LTS)或者Java 11(LTS),暂时可以不必升级到Java 13.
-
jdk10和jdk8共存和快速切换
2019-08-22 21:20:27jdk10和jdk8共存和快速切换 某次空闲时间我我把jdk升级到了10(原先版本是8),后来因为项目需求,要用到jdk8,但是我又不想卸载掉10,于是想到了jdk共存,按照百度经验操作,发现不管怎么样都是jdk10 原因如下 首先...jdk10和jdk8共存和快速切换
某次空闲时间我我把jdk升级到了10(原先版本是8),后来因为项目需求,要用到jdk8,但是我又不想卸载掉10,于是想到了jdk共存,按照百度经验操作,发现不管怎么样都是jdk10
原因如下
首先,jdk10和以往jdk不一样,他会自动在 C:\Program Files (x86)\Common Files\Oracle\Java\javapath 或者在C:\ProgramData\Oracle\Java\javapath 目录下面生成三个文件
这三个文件的优先级比较高,会使java -version和javac -version一直显示jdk10
第一步删掉这三个文件
第二步配置正确环境变量
首先设置两个总变量 JAVA_HOME 和 JAVA_HOME_JRE
为什么这么设置,通常配置方法是在系统变量里设置一个变量JAVA_HOME值为jdk安装路径例如( C:\Program Files\Java\jdk-10.0.2)配置 classpath值为 (.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar)(括号里面的都要)
然后配置 path 值为 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
但是这么配置的话对于jdk10而言不可以,在cmd里面javac没有反应,因为在jdk10的安装目录里面没有jre文件夹,jdk8可以
(最新的jdk安装本身不带jre 需要手动生成 以管理员身份打开cmdcd C:\Program Files\Java\jdk-11.0.1
bin\jlink.exe --module-path jmods --add-modules java.desktop --output jre
这样就会生成jre )
针对以上不同设置两个总变量
然后设置分变量截图如下(变量有点多,但是为了以后方便)
然后在path里添加两条 %JAVA_HOME%\bin 和 %JAVA_HOME_JRE%\bin
classpath依旧为 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
到了这里就配置好了
只要修改 JAVA_HOME 和 JAVA_HOME_JRE的值就随意切换版本了
让我们来试试
先在版本是jdk8
在cmd里面试试
重点来了
查看版本
切换版本试一试
切换完以后一定要按两次确定
然后重启命令行
-
jdk10安装及环境变量配置
2018-04-05 17:31:44下载安装jdk10 首先,你需要安装jdk10,如果已经安装,请看下一步。 官网下载: http://www.oracle.com/technetwork/java/javase/downloads/jdk10-downloads-4416644.html 下载完成后双击exe文件开始安装; ...下载安装jdk10
首先,你需要安装jdk10,如果已经安装,请看下一步。
官网下载:
http://www.oracle.com/technetwork/java/javase/downloads/jdk10-downloads-4416644.html下载完成后双击exe文件开始安装;
点击“下一步”
三个功能全选(默认)。“开发工具”就是jdk;“源代码”是相关的API;“公共JRE”就是JRE。可以更改安装路径,我选择默认路径C:\Program Files\Java\jdk-10。点击“下一步”。
再次确认安装路径,一般无需更改。点击”下一步“。
静静地等待
安装完成,点击“关闭”
jdk10与jdk 1.8目录对比
以往的jdk1.8目录只有一个,就是jdk,jre目录包含在jdk中
与jdk1.8不同,jdk10安装后有两个目录,一个是jdk,一个是jre,jre不在包含在jdk中。
这也导致了jdk10与jdk1.8的环境变量的配置会有差异。配置环境变量
打开“控制面板”>>”系统”>>“高级系统设置”>>“环境变量”
在下方“系统变量”中新建变量“JAVA_HOME”,变量值为jdk的路径。
再新建一个系统变量“JRE_HOME”,变量值为jre的路径。
修改系统变量CLASSPATH(若无则新建),变量值为 “.;%JAVA_HOME%\lib;%JRE_HOME%\lib;”(填入时去掉双引号,最前面有一个点“.”)
编辑系统变量Path,变量值为“.;%JAVA_HOME%\bin;%JRE_HOME%\bin;”
到此,环境变量配置完毕,一路按“确定”退出,否则就GG了。然后检查一下是否配置成功:
按快捷键win+R,输入“cmd”,确认打开控制台窗口。
键入命令“java -version”,回车查看结果。在键入“javac -version”,回车查看结果。
得到类似上图的结果,说明配置成功了。 -
IDEA开发环境中maven 项目配置使用JDK9,JDK10,JDK11,JDK12等
2019-07-09 14:56:16笔者就以JDK10作为介绍,其他正常的JDK版本的配置也是一样的。这里使用JDK10 只是为了作一个通用的示范,使得大家举一反三。后面会贴出其他版本的配置信息。供大家拷贝粘贴。知道大家开发项目就是为了快速解决问题。 ... -
JDK10安装与配置
2018-03-23 17:30:36JDK10安装教程1.下载jdk10搜索jdk官网(网址)选择JAVASE Downloads DOWNLOAD2.点击同意 选择window下载3.配置环境变量3.1按官方文档环境变量配置:发现环境变量变得精减许多3.2点击我的电脑 属性 3.2点击 高级系统... -
jdk10想要降到jdk1.8,降级失败
2019-07-18 14:12:10之前jdk使用的是jdk10.0,之后想要降级到jdk1.8. 修改了JAVA_HOME等环境变量,但是使用java -version显示的依旧是jdk10.0. 在这种情况下需要找到C:\Program Files (x86)\Common Files\Oracle\Java\javapath这个... -
Maven 教程:IDEA开发环境中maven 项目配置JDK9,JDK10,JDK11,JDK12..等EA版本的配置方法 系列教程一
2018-07-29 16:48:12笔者就以JDK10作为介绍,其他正常的JDK版本的配置也是一样的。这里使用JDK10 只是为了作一个通用的示范,使得大家举一反三。后面会贴出其他版本的配置信息。供大家拷贝粘贴。知道大家开发项目就是为了快速解决问题。 ... -
jdk10 环境变量配置
2018-04-10 20:46:31新建变量名: JAVA_HOME变量值: F:\java\jdk10 jdk 安装位置找到path变量值 : 在最前面加 ;%JAVA_HOME%\bin;验证:win+R 输入cmd java javac 测试注意: 1.path的变量值 在最前面加 不然Javac命令 不管用 2.... -
jdk8,jdk10,jdk12新特性
2019-05-26 21:58:28jdk8: 1.Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可,这个特征又叫做扩展方法 2. Lambda 表达式:(例如: (x, y) -> { return x + y; } ;λ表达式有三部分组成...jdk10: 1.... -
安装Android SDK时无法识别JDK 10
2018-07-01 11:14:32解决方法一:将jdk 10换成jdk 1.8,问题解决;解决方法二:保留jdk 10,还在尝试。 -
JDK各个版本的特性分析|JDK7|JDK8|JDK9|JDK10|JDK11|JDK12|JDK13特性分析
2019-10-09 20:38:37在我们还在用jdk7的时候,jdk一言不合的就已经升级到jdk13了,还有一些年代久远的祖传项目甚至还在用jdk5,jdk6的,所以我决定是时候写一点文章来专门的总结一下jdk升级后的特性,来方便大家要不要使用新版本的jdk,... -
JDK的发布周期缩短,JDK9,JDK10是短期版本
2018-04-20 17:53:04这两天看到JDK10的发布,感觉Oracle的发布周期缩短了这么久,JDK9何去何留?经查Oracle的发布周期缩短,即以后每半年一个版本即目前2018年3月份,JDK10,2018年9月份,可能会有新的版本,有很高概率是JDK11,并且,... -
JDK环境变量的两种配置方法——以JDK8和JDK10为例
2018-08-18 00:20:52JDK环境变量的两种配置方法——以JDK8和JDK10为例 相信很多刚接触java的小伙伴肯定会遇到很多棘手的问题,本文就JDK的安装、环境变量的配置以及常遇到的问题做了一个系统的全面的介绍,当然也方便自己失忆以后的... -
window10 修改jdk版本,从jdk10降到jdk1.8,java -version版本没有变化的问题解决
2018-11-26 13:03:13我是jdk10的环境,先安装jdk1.8。 修改javahome不细说了。 关键是找到C:\Program Files (x86)\Common Files\Oracle\Java\javapath下面的三个文件java.exe javaw.exe javaws.exe,替换文件在jdk1.8的bin目录下面的 ... -
JDK1.8 官网版本jdk1.8
2018-09-25 16:34:10jdk1.8 版本号1.8.0_25 分享1.8版本的JDK 同意CSDN资源共享规则 -
JDK的安装和配置(win10)
2021-07-23 19:34:44JDK的安装 1.打开安装包,双击运行。 2.修改JDK安装目录(也可以不修改直接点下一步)。 3.根据提示完成安装,完成安装后就可以关闭界面了。 JDK的配置 1.在我的电脑右击点开属性,选择高级设置 2... -
win10卸载jdk,安装多个不同版本的jdk
2019-09-13 17:37:33win10卸载jdk,安装多个不同版本的jdk 首先去控制面板的程序卸载: win + r 输入 control ,在程序下方选择卸载程序,然后卸载java所有相关程序。 安装jdk时需要按照版本的低到高的顺序安装,例如jdk8 和jdk12,先... -
jdk1.7 官方正式版64位下载
2014-08-26 22:10:02jdk1.7 64位 官方正式版下载。 JDK详细介绍 JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK)。 SE(J2SE),standard edition,标准版,是我们通常用的一个版本,从JDK 5.0开始,改名为Java SE。 EE... -
JDBC连接数据库问题之jdk1.9以及jdk10以后版本的ext问题(添加扩展包问题)
2018-07-08 13:43:40相信大家都有用JDBC连接数据库操作吧,这样来的更直观,在jdk1.9以前ext是非常实用的我们通常连接数据库Sqlserver需要下载两个驱动包,将这两个包放在jre\lib\ext目录下,这样才引入了这个包,但是在jdk1.9以后你会... -
Java虚拟机:关于JDK8到JDK9-10的一点小变化(tools.jar、dt.jar)
2018-08-13 20:24:32关于JDK8到JDK9-10的一点小变化 JDK在每一次版本升级中,或多或少都会有一些比较重要的...今天我在编译OpenJdk10的时候,使用到了本机安装JDK10,它一直给我说有两个包,在JDK10中是缺失的。这就让我很烦躁了哟。... -
windows系统(WIN10) 安装JDK
2018-04-20 14:49:06一、下载 JDK 安装包①.ORACLE 官网选择版本下载...可以在 《360软件管家》 下载二、安装JDK三、配置环境变量1、新建JAVA_HOME,路径是JDK的安装路径2、新建classpath,变量值.;%JAVA_HOME%\lib;%JAVA_HOME%\l... -
JDK安装配置-只需两步即可(附jdk安装包,win10系统)
2018-10-04 15:45:51JDK版本更新太快,但是几乎没有公司直接使用最新JDK做Java开发,大多数使用的都是jdk1.7或者jdk1.8,还有一部分仍在使用jdk1.6甚至更低版本,因此这里笔者推荐大家下载jdk1.8。 jdk1.8官网下载地址:jdk1.8下载 ... -
Mac安装双JDK版本,jdk8和jdk11
2020-04-30 13:23:13一,下载jdk8和 jdk11 地址:https://www.cr173.com/mac/122803.html这是jdk8的,一路安装好就行了 二,查看 mac查看自带的jdk版本和安装位置 1、打开终端,输入:/usr/libexec/java_home -V 注意:输入命令... -
jdk8(mac版) jdk-8u201-macosx-x64
2019-02-14 15:38:29jdk8(mac版) jdk-8u201-macosx-x64 官网下载太慢了,备着 -
Collections.sort(names,(String a, String b) -> b.compareTo(a)); 或:Collections.sort(names, (a, b) -> b.compareTo(a));