Tag: java 11

你如何在Java 11中调用schemagen?

根据Oracle文档,作为JEP 320( http://openjdk.java.net/jeps/320 )的一部分,schemagen工具将从JDK中删除。 JEP指向现在提供缺失工具的Maven工件。 JEP中工件的坐标是错误的,更新的坐标可以在这个问题的答案中找到: 我应该在Maven项目中使用哪些工件用于JAXB RI? 然而,缺少的是如何调用工具。 JEP中指向的shell脚本位于JAXB-RI Git存储库中。 但是,这些脚本仍然没有文档,很难调用。 该git repo中的构建指令表明它是使用标准的“mvn clean install”构建的,但是它不会产生与此处文档中使用的“bin”文件夹相匹配的输出结构: https : //javaee.github.io /jaxb-v2/doc/user-guide/ch04.html#tools-schemagen 理想情况下,我想从Gradle运行schemagen,避免使用shell脚本,因为它们不是从maven依赖项中获取的。 我当前的尝试改编自调用旧的schemagen.exe的工作版本,如下所示: (’real’build.gradle文件中有更多内容用于指定我的应用程序的依赖项等) configurations { schemagenTool } dependencies { schemagenTool “org.glassfish.jaxb:jaxb-jxc:${jaxbVersion}” } task schemaGen(type: Exec, dependsOn: [compileJava,configurations.schemaGenTool]) { workingDir projectDir executable ‘java’ doFirst { file(‘build/Schemas’).mkdirs() args ‘–module-path’, “${configurations.schemaGenTool.asPath}”, ‘-m’, ‘jaxb.jxc/com.sun.tools.jxc.SchemaGeneratorFacade’, // Note: automatic module name […]

在JDK 11中是否有CORBA的替换库

JDK-11将删除JDK的许多旧部分( JEP-320 )。 对于其中一些(例如JAXB),function将作为常规库提供。 你只需添加另一个依赖项,一切正常。 但对于CORBA则不然,因为 使用Java中的CORBA开发现代应用程序没有太大的兴趣 然而,我仍然需要维护仍需要CORBA但仍想要更新到JDK-11的旧应用程序。 是否有替换库或另一种迁移到JDK-11的好方法而不删除这些应用程序的CORBAfunction?

有效证书上的JDK 11 SSL错误(在以前的版本中工作)

以下代码在JDK 11中引发错误: HttpURLConnection con = (HttpURLConnection) new URL(“https://sis.redsys.es/sis/realizarPago”).openConnection(); con.setRequestMethod(“GET”); con.getResponseCode(); 错误是: javax.net.ssl.SSLHandshakeException: extension (10) should not be presented in server_hello at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:128) at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:117) at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:312) at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:268) at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:259) at java.base/sun.security.ssl.SSLExtensions.(SSLExtensions.java:71) at java.base/sun.security.ssl.ServerHello$ServerHelloMessage.(ServerHello.java:169) at java.base/sun.security.ssl.ServerHello$ServerHelloConsumer.consume(ServerHello.java:860) at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:390) at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:445) at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:422) at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:178) at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:164) at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:877) at java.base/sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:810) at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:383) at java.base/sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:567) 它在任何以前的JDK中工作(我在7,8,9和10中测试过)。 […]

Eclipse 2018-09使用Java 11插件进入无限构建循环:ClosedFileSystemException

我在Windows 10上运行Eclipse 2018-09(4.9.0)。我正在使用Open JDK 11 GA。 我有一个使用Java 8兼容源代码的项目,使用Eclipse和Maven的JDK编译。 我想使用新的Java 11function,所以首先我将编译器源/目标从Java 8更改为Java 11.它仍然在命令行上使用Maven构建查找,但无法在Eclipse中编译(参见Eclipse 2018-09 won)编译Java 11源代码;认为它低于1.7 )。 所以我在Eclipse Marketplace中添加了“Java 11 Support for Eclipse 2018-09”插件。 我重新启动了Eclipse并使用Alt+F5来刷新我的Maven项目。 Eclipse然后尝试重建项目。 现在Eclipse进入了一个无限循环,在8X%完成到9X%完成之间跳跃,重复的,无休止的错误如下: !SESSION 2018-09-27 08:08:51.188 ———————————————– eclipse.buildId=4.9.0.I20180906-0745 java.version=11 java.vendor=Oracle Corporation BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US Framework arguments: -product org.eclipse.epp.package.jee.product Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.jee.product This […]

Java11中找不到jdk.incubator.httpclient模块

使用JDK / 11的早期访问构建来编译基于使用VM参数的Java-9的现有代码 –add-modules jdk.incubator.httpclient 解决HTTP / 2客户端孵化器模块现在最终出现编译错误 找不到模块:jdk.incubator.httpclient Java版本详细信息: – java 11-ea 2018-09-25 Java(TM) SE Runtime Environment 18.9 (build 11-ea+11) Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11-ea+11, mixed mode)

Java 11中的String trim()和strip()方法之间的区别

在其他更改中,JDK 11为java.lang.String类引入了6种新方法: repeat(int) – 重复String的次数与int参数提供的次数相同 lines() – 使用Spliterator从源字符串延迟提供行 isBlank() – 指示String是否为空或仅包含空格字符 stripLeading() – 从头开始​​删除空格 stripTrailing() – 从末尾删除空格 strip() – 从字符串的开头和结尾删除空格 特别是, strip()看起来非常类似于trim() 。 根据这篇文章, strip*()方法旨在: String.strip(),String.stripLeading()和String.stripTrailing()方法修剪目标字符串的正面,背面或正面和背面的空白[由Character.isWhiteSpace()确定]。 String.trim() JavaDoc声明: /** * Returns a string whose value is this string, with any leading and trailing * whitespace removed. * … */ 这几乎与上面的引用相同。 自Java 11以来, String.trim()和String.strip()之间到底有什么区别?