admin管理员组文章数量:1794759
IntelliJ IDEA运行JDK 19
最近Java热门项目Loom进展很好,尝试本地运行下新功能,分享遇到的一些问题。
ea" target=_blank class=infotextkey>IntelliJ IDEA使用的版本是:2021.3.2 (Ultimate Edition),Build #IU-213.6777.52, built on January 28, 2022。看着还挺新的,可惜还不够最新,后文会提到。
首先按照如下步骤安装JDK 19最新的预览版本。关于Loom的更多信:Loom Early-Access Builds
下载JDK 19预览版,以Mac为例:
💡 download.java/java/early_access/jdk19/28/GPL/openjdk-19-ea+28_macos-x64_bin.tar.gz
下载完解压到相应位置,进入目录/Applications/jdk-19.jdk/Contents/Home/bin
执行如下命令:
tech@mymac bin % ./java --version openjdk 19-ea 2022-09-20 OpenJDK Runtime Environment (build 19-ea+28-2110) OpenJDK 64-Bit Server VM (build 19-ea+28-2110, mixed mode, sharing)JDK 19安装没问题,接下来集成到Idea中,新建jdk_19项目。
1.配置项目SDK
添加刚安装的JDK成为Idea的SDK
完成后选择这个SDK,Language level选择“X-Experimental”
Modules中依赖SDK也需要配置
写一个简单的测试代码试验下:
package com.echx.jdk19; public class TestLoom { public static void main(String[] args) throws InterruptedException { System.out.println("Current jdk version:"+System.getProperty("java.version") ); System.out.println("1-Run in main thread, Currrent ThreadName:"+Thread.currentThread().getName()); Thread thread1 = Thread.ofVirtual().start(new Runnable() { @Override public void run() { System.out.println("Run in virtual thread, Currrent ThreadName:"+Thread.currentThread()); } }); System.out.println("2-Run in main thread, Currrent ThreadName:"+Thread.currentThread().getName()); thread1.join(); Thread thread = new Thread(new Runnable(){ @Override public void run() { System.out.println("Run in classic thread, Currrent ThreadName:"+Thread.currentThread().getName()); } }); thread.start(); thread.join(); } }测试代码做的事情:起了一个Virtual Thread,打印当前线程信,与普通线程做个对比。
开始build,很不幸出现以下错误:
java: ofVirtual() 是预览 API,默认情况下处于禁用状态。 (请使用 --enable-preview 以启用预览 API)配置--enable-preview到编译环境
再次不幸,出了以下错误提示:
java: 源发行版 18 与 --enable-preview 一起使用时无效 (仅发行版 19 支持预览语言功能)而这个错误最终导致了放弃在Idea中测试JDK 19的预览功能。
经过漫长的网上漫游寻找解决方案,多种配置方式都无法解决这个错误,最终据说是只能更新到最新版Idea,在Compiler配置如下参数:-enable-preview --source 19
切换到命令行,直接编译运行了。
进入到该项目的src目录下。
/Applications/jdk-19.jdk/Contents/Home/bin 是JDK 19-EA安装目录。
编译:
/Applications/jdk-19.jdk/Contents/Home/bin/javac --release 19 --enable-preview -Xlint:preview com/echx/jdk19/TestLoom.java注意加上参数:--release 19 --enable-preview
有一个警告提示,可以忽略:
com/echx/jdk19/TestLoom.java:8: 警告: [preview] ofVirtual() 是预览 API,可能会在未来发行版中删除。 Thread thread1 = Thread.ofVirtual().start(new Runnable() { ^ 1 个警告
运行:
/Applications/jdk-19.jdk/Contents/Home/bin/java --enable-preview com.echx.jdk19.TestLoom得到如下输出:
Current jdk version:19-ea 1-Run in main thread, Currrent ThreadName:main 2-Run in main thread, Currrent ThreadName:main Run in virtual thread, Currrent ThreadName:VirtualThread[#21]/runnable@ForkJoinPool-1-worker-1 Run in classic thread, Currrent ThreadName:Thread-0成功!可以看到Virtual Thread是在ForkJoinPool的一个实际线程中运行。
版权声明:本文标题:IntelliJ IDEA运行JDK 19 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1687000766a127287.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论