java-9相关内容

Android Studio 3 是否支持 Java 9 进行 Android 开发?如果是,则支持 Java 9 的哪些功能?

我将安装 Android Studio 3 以开发 Android 应用程序. 我想知道是否可以使用 Java 9 进行 Android 开发?如果是,它是否支持 Java 9 的所有功能? 解决方案 据我所知,IDE 本身支持 Java 9.这意味着您可以编写 Java 9 桌面程序,或使用 JDK 9 运行 IDE. 但是,Android 本身不支持 Java 9(目前). ..
发布时间:2021-11-27 21:52:48 移动开发

Java 9 编译器中的 --release 标志是什么?

Java 9 的 javac 有一个新标志 --release: >javac --help...--发布为特定的 VM 版本编译.支持的目标:6、7、8、9 它与 -source 和 -target 标志有什么不同?难道只是-source X -target X的快捷方式? 解决方案 不完全是. JEP 247:为旧平台版本编译 定义了这个新的命令行选项,--relea ..
发布时间:2021-11-25 20:40:19 Java Web开发

包与 Java 9 中的自动模块冲突

随着 Java 9 的临近,我认为将我的一些项目移植到 Java 9 是一个很好的学习练习.在我的一个项目中,我依赖于 rxjava 和 rxjavafx 依赖项{编译'io.reactivex:rxjava:1.2.6'编译'io.reactivex:rxjavafx:1.0.0'...} 我想将此项目创建为命名模块.为此,我需要创建一个 module-info.java 文件,并且需要在此 ..
发布时间:2021-11-25 20:05:28 Java Web开发

Java 9 中如何实现字符串连接?

如JEP 280:指示字符串连接中所述: 更改由javac 生成的静态String-concatenation 字节码序列,以使用invokedynamic 调用JDK 库函数.这将启用 String 连接的未来优化,而无需进一步更改 javac 发出的字节码. 这里我想了解一下invokedynamic调用的用途是什么,字节码拼接和invokedynamic有什么不同? 解决方 ..
发布时间:2021-11-25 19:11:58 Java Web开发

无法使用 Java 9 运行 sdkmanager --list

我下载并安装了: 来自 Oracle 的 JDK (jdk-9.0.1_osx-x64_bin.dmg) 这里 Android SDK (sdk-tools-darwin-3859397.zip) 来自 Google 此处. 配置PATH变量后,我尝试运行sdkmanager,它取代了android命令来管理SDK组件.但是,它失败了,如下所示: $ sdkmanager --li ..
发布时间:2021-11-25 19:08:26 Java Web开发

如何解决 Java 9 上的 InaccessibleObjectException(“无法使 {member} 可访问:模块 {A} 不会‘打开 {package}’到 {B}")?

在 Java 9 上运行应用程序时,该异常在多种情况下都会发生.某些库和框架(Spring、Hibernate、JAXB)特别容易出现这种情况.这是来自 Javassist 的示例: java.lang.reflect.InaccessibleObjectException:无法使受保护的最终 java.lang.Class java.lang.ClassLoader.defineClass(j ..
发布时间:2021-11-25 13:28:00 Java Web开发

什么是非法反射访问?

Java 9 中有很多关于非法反射访问的问题. 我发现有很多关于如何解决错误消息的讨论,但我很想知道非法反射访问实际上是什么. 所以我的问题是: 什么定义了非法反射访问以及什么情况会触发警告? 据我所知,它与 Java 9 中引入的封装原则有关,但我找不到关于它们如何结合在一起、触发警告的原因以及在什么情况下的解释. > 解决方案 除了了解模块及其各自包之间的访问之外 ..
发布时间:2021-11-25 13:14:59 Java Web开发

使用 Java EE API 替换已弃用的 JPMS 模块

Java 9 弃用的六个模块包含 Java EE API 并且它们即将被移除: java.activation 和 javax.activation 包 java.corba 与 javax.activity、javax.rmi、javax.rmi.CORBA 和org.omg.* 包 java.transaction 和 javax.transaction 包 java.xml.bi ..
发布时间:2021-11-25 11:53:04 Java Web开发

如何解决 java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException

我有一些使用 JAXB API 类的代码,这些类在 Java 6/7/8 中作为 JDK 的一部分提供.当我使用 Java 9 运行相同的代码时,在运行时我收到错误消息,指出找不到 JAXB 类. JAXB 类从 Java 6 开始就作为 JDK 的一部分提供了,那么为什么 Java 9 再也找不到这些类了? 解决方案 JAXB API 被认为是 Java EE API,因此不再包含 ..
发布时间:2021-11-25 10:16:59 Java Web开发

如何抑制“自动模块需要传递指令"正确警告?

在将 Maven 项目升级到 Java 9 并添加模块描述符后,javac 抱怨自动模块的传递依赖: [警告]/.../src/main/java/module-info.java:[3,35] 需要传递性指令用于自动模块 重现问题的示例 module-info.java: module com.example.mymodule {出口 com.example.mymodule.my ..
发布时间:2021-11-22 16:36:01 Java Web开发

--release 不允许从系统模块导出包

我有以下程序: module-info.java module a {} Main.java public class Main {公共静态无效主(字符串 [] args){System.out.println(sun.nio.ByteBuffered.class);}} 这个程序使用--add-exports选项成功编译: >javac --add-exports java.ba ..
发布时间:2021-11-22 16:23:12 Java Web开发

什么是 sjavac,它适用于谁以及如何使用它?

一些关于一种名为的工具的热议sjavac 在 OpenJDK 邮件列表中.此外,还有两个相关的 JEP:JEP 139:增强 javac 以提高构建速度和JEP 199:智能 Java 编译,第二阶段. 我的问题是: sjavac 工具究竟是什么? 它是为谁准备的? 我如何使用它? 免责声明:自行回答的问题.只是想将这个工具的知识带给 StackOverflow 社区,并为未 ..
发布时间:2021-11-22 16:13:11 Java Web开发

IntelliJ 2018.1 首选项中的“使用 '--release' 选项"是什么?

在 IntelliJ 2018.1 的首选项(构建、执行、部署 > 编译器 > Java 编译器)中有一个复选框,标记为: 使用“--release"选项进行交叉编译(Java 9 及更高版本) 我在网上搜索时找到了相关信息.这 "?"单击帮助图标时会出现 404 错误. 这个选项的目的/功能是什么? 解决方案 帮助部分 可以在这里找到: 默认情况下,此选项处于选中 ..
发布时间:2021-11-22 16:10:57 Java Web开发

编译时如何告诉eclipse添加导出

是否可以告诉 eclipse 添加以下命令行选项:--add-exports jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED编译时. 我认为在运行测试时也可能需要它. 是否也可以删除此消息: 请注意,我尝试将这些添加到我的一个单元测试的 VM 选项中,但没有奏效. 解决方案 转到项目>属性:Java构建路径,标签库 选 ..
发布时间:2021-11-22 16:08:52 Java Web开发

Java 9 编译器中的 --release 标志是什么?

Java 9 的 javac 有一个新标志 --release: >javac --help...--发布为特定的 VM 版本编译.支持的目标:6、7、8、9 它与 -source 和 -target 标志有什么不同?难道只是-source X -target X的快捷方式? 解决方案 不完全是. JEP 247:为旧平台版本编译 定义了这个新的命令行选项,--relea ..
发布时间:2021-11-22 16:00:42 Java Web开发