问题标签 [java-9]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
15268 浏览

java - Java 9 选项 --add-exports 与 -XaddExports 无法识别

我下载了最新的 jdk9 版本:

当我执行

我看到了这个选项:

但是当我尝试使用这个选项时:

我得到:

-XaddExports我在一些帖子中看到的相同。

我在这里做错了什么?

我需要一个特殊的拼图 jdk9 发行版吗?老实说,我对不同的 jdk9 版本有点困惑;)

0 投票
1 回答
4619 浏览

java - 为什么我不能导入 sun 包?

我从https://jdk9.java.net下载了 java 9并将其安装在我的 Windows 10 机器上。
Java 9 有 jshell,我可以用它来评估和学习 java 编程。
一些例子导入sun包,比如sun.audio.*etc。但是,在jshell中,每次我尝试导入任何sun包时,它都会说sun包不存在。

某些应用程序不适用于 java 9。也许存在不兼容性?

0 投票
1 回答
1068 浏览

java - Java 9 整数到字符串转换

我刚刚阅读了有关此 Java 9 功能的信息https://bugs.openjdk.java.net/browse/JDK-8085796说使用 StringBuilder 的“慢”字符串连接将得到改进。

所以我的问题是,以下列方式对 String 进行 int 转换是否还有任何缺点?

Integer.toString(i)或者使用or将 int 转换为 String 有什么优点/缺点String.valueOf(i)

编辑:由于我的问题过于基于意见(对此很抱歉),我改变了它。我对不同铸件的积极或消极方面感兴趣。每个人都应该自己决定使用哪一个。

0 投票
1 回答
1616 浏览

java - sun.misc.Service 的替换类

我有一些依赖于sun.misc.ServiceAPI 的旧(Java 6 之前)代码,例如:

这个类在 Java 9 中被删除(不仅仅是内部化)。

我可以使用哪些备用 Java SE API?

0 投票
8 回答
49814 浏览

java - 错误:java:无效标志:-release

我使用Java

IntelliJ IDEA

编译时出现错误:

执行javac -help

所以javac应该使用两个连字符和release,但 Intellij Idea 使用一个。

我可以覆盖javacIDEA 使用的选项或以某种方式修复它吗?

UPD:在这种情况下,即使构建、执行、部署 > 编译器 > Java 编译器附加命令行参数也无济于事

0 投票
1 回答
285 浏览

java - “打开”模块的 JDK 编译器失败

使用当前 JDKbuild 9-ea+143javax.tools.JavaCompiler工具,我可以编译简单(空)示例模块而不会出现错误:

如果我添加open如下:

...编译器错误显示:

语法基于http://cr.openjdk.java.net/~mr/jigsaw/spec/lang-vm.html

当前的 JDK 9 版本是否与此规范不是最新的,还是我缺少要传递给的选项JavaCompiler

0 投票
3 回答
3209 浏览

java - 使用 Maven 构建具有非模块化依赖项的 JDK 9 项目需要什么

我有一个简单的 Java 9 SE 项目,它依赖于一个非模块化项目(本示例选择 Weld SE),我正在尝试使用 Maven ( clean install) 构建它。为了让 Java 9 启动,我添加了module-info.java. 最初,这个文件只包含模块名称,没有requires公式。

请记住,我唯一的依赖项不是模块化项目,因此我假设 Maven 将放入类路径(而不是模块路径),因此它将以模块化系统状态中所述的方式unnamed module结束。

现在,我的 Maven 版本是 3.3.9,我知道我需要在 3.6 版本中使用 Maven 编译器插件,如此处所述当然我已经下载了 JDK 9 EA bu​​ild with jigsaw 并设置 Maven 使用它。

如果我在没有 的情况下构建我的项目module-info.java,一切正常,东西被添加到类路径并构建成功。我想 Maven 只是坚持使用旧方法,只要您忽略该文件。

但是 module-info.java它构建它告诉我在类路径中找不到我的依赖项中的类。所以我在调试模式下(使用-X)运行了 Maven,并且确实 -所有 jar 都在 module-path 下并且 classpath 是 empty。这实际上意味着我的所有依赖项都转移到了自动模块中,我需要在module-info.java.

一旦我声明了自动模块要求(链接到项目的module-info),我就可以在 JDK 9 上构建它。但这有点乱——我唯一的pom.xml依赖是 on weld-se-core,但我module-info要求我声明更多的要求才能通过编译。

这是一个可以观察到所有这些的整个GitHub 项目。

所以我的问题是:

  1. 如果我知道它们不是模块化的,我可以告诉 Maven 将一些工件放在类路径上吗?这样我就可以避免automatic module和需要声明它们?
  2. 如果我坚持使用automatic module,我可以告诉 Maven 以某种方式传递地允许我的依赖项需要引入的任何东西吗?例如 Weld 的其他部分、CDI API 等。
  3. 实际原因是什么,为什么我需要说明我的项目requires模块,我不直接使用?例如weld.environment.common
0 投票
5 回答
6824 浏览

java - 无法创建 Eclipse 工作区

今天我下载了 Eclipse Neon。当我第一次运行它时,它要求我选择一个文件夹作为我的工作区。执行此操作后,它会抛出一个错误,将我重定向到我选择保存工作区的文件夹中的日志文件:

对不起,很长的帖子。有任何想法吗?

0 投票
1 回答
1557 浏览

java - Gradle 不支持 JDK9 中的 --add-modules jvm 参数

我正在尝试 JDK9 (9-ea+143),需要设置--add-modules java.xml.bind. 我努力了:

  • 环境GRADLE_OPTS="--add-modules java.xml.bind '-Dorg.gradle.jvmargs=--add-modules java.xml.bind'"
  • org.gradle.jvmargs=--add-modules java.xml.bind在 gradle.properties 中设置。
  • 添加test { jvmArgs '--add-modules java.xml.bind' }到 build.gradle
  • 添加tasks.withType(Test) { jvmArgs '--add-modules java.xml.bind' }到 build.gradle
  • 添加tasks.withType(JavaExec) { jvmArgs '--add-modules java.xml.bind' }到 build.gradle

测试仍然失败。我错过了什么?

我在https://github.com/henrik242/gradle-jdk9-test-problem有一个示例项目

0 投票
1 回答
2391 浏览

ant - 在 Ant 中使用 Java 9 模块系统

我对 Ant 和 Java 9 模块系统都很陌生,所以请多多包涵。我正在将一个现有的 Ant 项目移植到使用 Java 9 上,随之而来的是模块的使用。

特别是,现在我有 2 个不同的模块,一个需要另一个模块,如下所示:

在构建期间baz,我收到一个错误:module not found: org.bar.foo

在查看了一些示例之后,我尝试--module-path在构建文件中通过编译器 arg设置baz,但到目前为止我还没有运气。我不太确定在指定模块路径时我能有多具体/通用。