有人可以告诉我下面列出的 API 的替换吗
SunToolkit.getContainingWindow
SwingUtilities2.getFontMetrics
SwingUtilities2.stringWidth
SwingUtilities2.drawString
SwingUtilities2.clipStringIfNecessary
SwingUtilities2.setLeadAnchorWithoutSelection
DefaultLookup.getIcon
Run Code Online (Sandbox Code Playgroud)
以及下面列出的课程
sun.font.FontUtilities
com.sun.java.swing.plaf.motif.MotifComboBoxUI
com.sun.java.swing.plaf.windows.WindowsComboBoxUI
com.sun.java.swing.plaf.motif.MotifScrollBarUI
com.sun.java.swing.plaf.windows.WindowsScrollBarUI
com.sun.swing.internal.plaf.metal.resources.metal_it
Run Code Online (Sandbox Code Playgroud) 问题描述
Scala StringOps提供了一个lines返回的方法Iterator[String].Java 11添加lines()了返回类型java.Stream[String].
在一个链式方法调用中
val text: String
text.lines.foldLeft("")(_ + _)
Run Code Online (Sandbox Code Playgroud)
代码将不再编译并抛出foldLeft未在java.Stream [String]上定义的exeption .据我所知,隐式解析不再适用,因为现在已经在java.String中找到了lines方法.
我如何表达我希望隐式被应用(没有parens的那个)而不是java.String.lines()
附加信息
linesIterator但它被弃用了.val text : StringOps 看起来很丑,但解决了它,但我对这个解决方案不满意我试图理解java 11(JEP 309)动态类文件常量,它看起来像一个有趣的功能.
我谷歌,但我没有找到详细的文章(如果你知道任何请分享),我只是觉得这一个由拉斐尔·温特,但我仍然有一些问题:
我正在尝试使用SOAP创建一条简单的消息:
MessageFactory mf = MessageFactory.newInstance();
SOAPMessage message = mf.createMessage();
Run Code Online (Sandbox Code Playgroud)
当我使用Java 8构建项目时,可以,但是使用Java 11构建项目失败,并出现编译错误:
package javax.xml.soap does not exist
Run Code Online (Sandbox Code Playgroud)
如何解决此问题?
我一直在尝试在 Visual Studio Code 中设置 JavaFX-11。
我找到了这篇JavaFX-11 with VSCode 文章,其中解释了如何执行此操作,并按照步骤操作。
但是,我需要通过vmArgs在launch.json文件中添加一个条目来包含 JavaFX SDK 的模块路径:
{
"configurations": [
{
"type": "java",
"name": "CodeLens (Launch) - Main",
"request": "launch",
"vmArgs": "--module-path C:\\Program Files\\Java\\javafx-sdk-11.0.2\\lib --add-modules javafx.controls,javafx.fxml",
"mainClass": "hellofx.Main",
"projectName": "hellofx"
}
]
Run Code Online (Sandbox Code Playgroud)
}
正如您在vmArgs条目中看到的,是我到 JavaFX SDK 的本地路径。但是,当我尝试运行该程序时,出现以下错误:
错误:无法找到或加载主类 Files\Java\javafx-sdk-11.0.2\lib 导致:java.lang.ClassNotFoundException: Files\Java\javafx-sdk-11.0.2\lib
在过去的几个小时里,我一直试图弄清楚为什么它不起作用。我的论点写错了吗?我看到有.jmods文件。我应该下载那些文件吗?还有其他方法可以指定模块路径吗?
值得一提的是,我在 Windows 10 中运行 Visual Studio Code,所以我必须使用转义序列来使用反斜杠。
我正在尝试做一些应该是微不足道的事情,但我面临着一个问题。
将 JavaFx 应用程序从 Java 8 迁移到 Java 11 后,充气城堡安全提供程序将不会加载(也尝试了 Java 12,结果相同)。这是我更新为使用 Java 11 兼容插件的 Maven 项目。它编译得很好,但是在运行时我在终端窗口中得到了这个:
jar .Launcher java.lang.reflect.InvocationTargetException at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:567) at javafx.graphics/com.sun。 javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:464) 在 javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:363) 在 java.base/jdk.internal.reflect.NativeMethodAccessorImpl。 invoke0(Native Method) 在 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 java。base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:567) at java.base/sun.launcher.LauncherHelper$ FXHelper.main(LauncherHelper.java:1051) 由:java.lang.NoClassDefFoundError: org/bouncycastle/jce/provider/BouncyCastleProvider at .Launcher.main(Launcher.java:14) ... 11 引起:java.lang.ClassNotFoundException:org.bouncycastle.jce。 provider.BouncyCastleProvider 在 java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583) 在 java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) 在 java。 base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) ... 12 更多
在我的 java.security 中,我将充气城堡提供者作为第一个提供者(也尝试将其作为最后一个提供者,但结果相同)
#
# List of providers and their preference orders (see above):
# …Run Code Online (Sandbox Code Playgroud) 我的构建输出是out/production/classes. Java 文件可以很好地编译成类并被放入out/production/classes/[packageName],但不会复制资源。据我所知,他们应该直接进入out/production/classes目录。
如果相关,我正在使用 Java 11、Spring Boot 和 Gradle。这是我的build.gradle
plugins {
id 'org.springframework.boot' version '2.1.3.RELEASE'
id 'java'
}
apply plugin: 'io.spring.dependency-management'
group = 'net.impfox'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
// hidden
}
Run Code Online (Sandbox Code Playgroud)
我的编译器设置:
我的资源没有被复制到输出目录的原因可能是什么,我该如何解决这个问题?
我在 Java 11 的服务器日志中收到以下错误。有什么解决方案吗?
[2019-05-02 18:06:18 IST] [] ERROR com.codahale.metrics.ScheduledReporter [SID= UID= BGCD=] - Exception thrown from Slf4jReporter#report. Exception was suppressed.
java.lang.reflect.InaccessibleObjectException: Unable to make public long com.sun.management.internal.OperatingSystemImpl.getOpenFileDescriptorCount() accessible: module jdk.management does not "opens com.sun.management.internal" to unnamed module @489448ac
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:340)
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:280)
at java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:198)
at java.base/java.lang.reflect.Method.setAccessible(Method.java:192)
at deployment.myPage.war//com.codahale.metrics.jvm.FileDescriptorRatioGauge.invoke(FileDescriptorRatioGauge.java:48)
at deployment.myPage.war//com.codahale.metrics.jvm.FileDescriptorRatioGauge.getRatio(FileDescriptorRatioGauge.java:35)
at deployment.myPage.war//com.codahale.metrics.RatioGauge.getValue(RatioGauge.java:64)
at deployment.myPage.war//com.codahale.metrics.RatioGauge.getValue(RatioGauge.java:11)
at deployment.myPage.war//com.codahale.metrics.DerivativeGauge.getValue(DerivativeGauge.java:23)
at deployment.myPage.war//com.codahale.metrics.Slf4jReporter.logGauge(Slf4jReporter.java:306)
at deployment.myPage.war//com.codahale.metrics.Slf4jReporter.report(Slf4jReporter.java:220)
at deployment.myPage.war//com.codahale.metrics.ScheduledReporter.report(ScheduledReporter.java:243)
at deployment.myPage.war//com.codahale.metrics.ScheduledReporter$1.run(ScheduledReporter.java:182)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
Run Code Online (Sandbox Code Playgroud) 当使用ant, 调用sun.awt.AppContext工作时,但是使用 AdaptOpenJDK11 使用 IntelliJ 编译的相同代码失败。
sun.awt.AppContext使用Oracle JDK8与 IntelliJ 配合使用sun.awt.AppContext采用AdoptOpenJDK11不适用于IntelliJ尽管 Sun/Oracle 已经警告过一段时间要避免使用这些sun.*包,但Java中的某些功能(错误?)仍然需要它们,而且很奇怪,命令行似乎很高兴。
示例代码:
package test;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import sun.awt.AppContext;
public class Main {
public static void main(String[] args) {
//Update printer list in CUPS immediately
AppContext.getAppContext().put(PrintServiceLookup.class.getDeclaredClasses()[0], null);
PrintService[] printers = PrintServiceLookup.lookupPrintServices(null, null);
for (PrintService p : printers) {
System.out.println(p.getName());
}
}
}
Run Code Online (Sandbox Code Playgroud)
如何配置 IntelliJ 使其表现得像ant并允许访问sun.awt.* …
我正在学习 Bryan Hansen 的 PluralSight 课程“Spring 框架:Spring 基础知识”。我完全按照演示进行操作(我相信),但收到错误消息“错误:java:不再支持源选项 5。使用 6 或更高版本。”。
我正在使用最新版本的 IntelliJ,具有以下配置:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>11</source>
<target>11</target>
</configuration>
</plugin>
</plugins>
</build>
Run Code Online (Sandbox Code Playgroud)
我看过其他一些类似的帖子,他们有时似乎将上述配置设置为 1.6 而不是 11,但我正在尝试密切关注本教程。我仍然对这里的差异感到好奇。
不确定是什么导致抛出此错误,据我所知,我已经正确设置了所有内容,但显然情况并非如此。任何帮助,将不胜感激。
java-11 ×10
java ×9
maven ×3
adoptopenjdk ×1
bouncycastle ×1
build ×1
gradle ×1
graphics ×1
javafx ×1
javafx-11 ×1
jax-ws ×1
maven-3 ×1
migration ×1
module-path ×1
openjdk-11 ×1
scala ×1
string ×1
swing ×1