问题标签 [java-13]

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 投票
2 回答
599 浏览

java - Java 13 和 Java 8 中的交叉编译

我想加载特定于 Java 版本的JavaCompiler.

这就是我目前采用编译器实例的方式:

我的目标是根据最初编写的 Java 版本(Java 8 或 Java 13)编译“用户 Java 代码”。

我正在用 Java 8 构建我的整个源代码。

因此compiler,我得到的实例将是 Java 8 特定的,我无法编译 Java 13 代码(如果我错了,请纠正我)。

我安装了 Java 8 和 Java 13。

我从这篇文章中阅读了以下声明

ToolProvider 在这种情况下定位默认编译器。也可以通过使用服务提供者机制来定位替代编译器或工具。

有什么方法可以加载特定于 Java 版本的 Java 编译器?有解决方法吗?

或者,如果我使用 Java 13 构建项目,我可以使用Java 13 编译器的--targetor--source--release参数来编译特定于版本的版本吗?

0 投票
1 回答
814 浏览

java - maven surefire 插件不使用 --enable-preview 模式

这是我的 pom.xml:

问题是构建正常,但是当测试启动时,我得到:

[错误] 无法在项目 foo-project 上执行目标 org.apache.maven.plugins:maven-surefire-plugin:3.0.0-M4:test (default-test):执行目标 org.apache.maven 的默认测试.plugins:maven-surefire-plugin:3.0.0-M4:test failed:java.lang.UnsupportedClassVersionError: Preview features are not enabled for it/project/MyTest(类文件版本 57.65535)。尝试使用 '--enable-preview' -> [帮助 1] 运行

我必须在 pom.xml 中插入什么来执行启用预览模式的测试?

谢谢。

0 投票
1 回答
1729 浏览

java - 在 Java 12+ 中更改静态最终字段

这个问题与使用 Java 反射更改私有静态最终字段密切相关。在那里,有人问,如何改变一个private static final变量。


但是,该问题的答案在 Java 12+ 中不起作用,因为您无法访问java.lang.reflect.Field使用反射的私有变量。

尽管如此,当您尝试这样做时,您最终会得到如下堆栈跟踪:

有没有办法在这些版本中改变这样的常数?

我可以想象使用 JNI/JNA 是可能的。

0 投票
3 回答
6632 浏览

java - OpenJDK 64 位服务器 VM 警告:选项 -Xverify:none 和 -noverify 在 JDK 13 中已弃用,可能会在未来版本中删除

我正在使用 Java 14 开始一个新的 Spring 5 项目。它已编译,但给了我一个警告:

任何想法如何解决它?

0 投票
2 回答
322 浏览

java - 是否有用于在 Java 中编码本地时间的类?

我想创建一个一周一周的时间表。

因为从一周到下一周的时间表是相同的,所以我需要存储的唯一信息是一周中的哪一天,以及它发生的时间。例如。Monday 2:30pm. 实际日期并不重要,时区也不重要。

到目前为止,我一直在编写代码,将日期和时间分开,使用DayOfWeek枚举和LocalTime类型来处理时间。但是我已经开始遇到使用两个变量来管理时间的问题,而不是像 DateTime 这样的单一方便类型。例如。如果我想在周二晚上 11 点后 3 小时获得时间,我可以使用该LocalTime.plus()方法获得凌晨 2 点,但这不考虑当天的翻转,我必须单独检查和更新。

我还想确保从周末到开始我所采用的任何解决方案:例如。周日晚上 10 点后 5 小时应该是周一凌晨 3 点。

JDK中是否存在这样的类,或者定义自己的时间类型是否足够容易?还是使用 java 提供的 LocalDateTime 解决问题并以某种方式忽略日期组件会更好?

0 投票
0 回答
419 浏览

java - 使用 @Mock 注入模拟不适用于 Java 13

我目前正在尝试将项目迁移到 Java 13(包括module-info.java这对问题很重要)、JUnit 5、最新的 Mockito 版本 3.3.3 和 Maven。

但是当我使用 Maven 运行测试时,使用注入模拟显然@Mock不起作用。

我试图从一个界面创建一个模拟实例。我的测试如下所示:

错误如下:

我在 JDK 13 上运行,所以我添加了一个module-info.java. 这很简单:

当我添加open module测试工作正常。但我不想声明我的模块为反射打开。

我错过了什么吗?

如果你想看看,我上传了一个最小的例子:https ://github.com/schuettec/junit5-java13-test

构建日志在这里:https ://travis-ci.org/github/schuettec/junit5-java13-test/builds/683407777

0 投票
1 回答
174 浏览

javascript - 我应该如何从正确编码的 GraalJS 脚本引擎获取脚本输出?

我们通过执行动态生成的 JavaScript 代码在 Scala 程序中处理 JSON。当使用包含的 Nashorn 脚本引擎时,这在 Java 8 中运行良好。

我们现在已经切换到 Java 13。不再包含 Nashorn,因此我们包含了 GraalJS。它工作正常,除了在输出中处理错误的国际字符。看起来输出被转换为 UTF-8 两次。

这是一个显示问题的简短示例:

结果是:Test ᅢᆬᅢ내ᄊ !

我做错了吗,或者这是 GraalJSScriptEngine 中的错误?我找不到任何文件。

注意:我已经通过使用我自己的存储原始字节的 StringWriter 暂时解决了这个问题,然后将它们作为 UTF-8 再次读取,但感觉不像这样做的方法......

0 投票
1 回答
388 浏览

java - 如何在 JRE 上运行 Java 应用程序 JDK13?

我用 JDK 13 制作了一个 java 应用程序。我用 launch4j 创建了一个 exe 文件。但是没有人可以运行它,因为每个人都有 jre 1.8 版本并且它不会启动...我必须在安装中包含 java jdk 13 并设置 java_home 吗?

0 投票
0 回答
24 浏览

netbeans - Netbeans 未安装 JDK 13 并说我的 JDK 小于 9

我的 PC 上安装了 JDK 13,但是当我尝试安装 Netbeans 13.3 时,它显示需要 JDK 8 和更新版本。

可以肯定的是,我在 cmd 上测试了我的 JDK 版本javac -version并得到了 13 我不明白为什么 Netbeans 会显示这样的错误。

0 投票
0 回答
109 浏览

java - Xuggler 无法编码/转换 MPEG4 视频

由于 Java 媒体库中支持的编解码器不多,我尝试使用 Xuggler 将 AVI 和 MPEG4 文件转换为 MP4,然后打开新文件。

AVI 文件没有问题,但在 MPEG4 文件上我收到以下错误:

我不知道问题出在哪里,我的方法很简单:

我已经阅读了一些关于支持的代码和其他转换代码的帖子,但结果没有改变。

我是否错过了对 MPEG4 文件的支持?

亲切的问候,马文