问题: 我应该使用什么确切的 ojdbc 驱动程序:Oracle 12cR2 (12.2) 和 JDK 11
参考: 我指的是https://www.oracle.com/database/technologies/faq-jdbc.html#01_01
其中表示 ojdbc8.jar。现在ojdbc8已经发布了多个版本。
随Oracle 12.2一起发布的版本与JDK11不兼容。(https://www.oracle.com/database/technologies/jdbc-ucp-122-downloads.html)
与 Oracle 19c (19.3) 一起发布的版本与 JDK11 兼容 ( https://www.oracle.com/database/technologies/appdev/jdbc-ucp-19c-downloads.html )
所以我找不到使用 ojdbc jar 与 Oracle 12.2 和 JDK11 一起使用的明确解释。我可以将与 Oracle 19c 一起发布的 ojdbc8 jar 用于 Oracle 12.2/12cR2 吗?
我有一个Student(name, result, rollNo)对象列表。
List.of(
new Student("Sam", "Pass", "100"),
new Student("Gill", "Not available", "101"),
new Student("Joe", "Fail", "111"),
new Student("Matt", "Fail", "115"),
new Student("Ann", "Pass", "121"),
new Student("Moss", "Pass", "133"),
);
Run Code Online (Sandbox Code Playgroud)
我需要根据以下要求对上面的列表进行排序(我使用的是 Java 11)
最终结果应如下所示。
{"Joe", "Fail", "111"}
{"Matt", "Fail", "115"}
{"Sam", "Pass", "100"}
{"Ann", "Pass", "121"}
{"Moss", "Pass", "133"}
{"Gill", "Not available", "101"}
Run Code Online (Sandbox Code Playgroud) 使用 Java 11 编译时出现以下错误。
Symbol is declared in module 'java.xml' which does not export package 'com.sun.org.apache.xerces.internal.xni.parser'
Symbol is declared in module 'java.base' which does not export package 'sun.net.www.protocol.http'
Symbol is declared in module 'java.base' which does not export package 'sun.net.www.protocol.file'
Symbol is declared in module 'java.xml' which does not export package 'com.sun.org.apache.xerces.internal.util'
Symbol is declared in module 'java.xml' which does not export package 'com.sun.org.apache.xerces.internal.xni.parser'
Symbol is declared in module 'java.xml' which does not export package 'com.sun.org.apache.xerces.internal.xni.parser'
Symbol is declared in …Run Code Online (Sandbox Code Playgroud) TravaOpenJDK在版本 11.0.9 中引入了新的 JVM 选项 -XX:HotswapAgent。
启用 HotswapAgent 有 3 种模式:fatjar、core和external。
fatjar和 和有什么区别core?
我正在尝试运行“ mvn clean install ”命令,但出现以下错误:
java:[42,22] 包 javax.xml.bind 不存在
你知道为什么吗?
我看到这个 JEP ( http://openjdk.java.net/jeps/197 ) 引入了 3 种类型的代码缓存。
对我来说最明显的一个是-XX:NonNMethodCodeHeapSize。这是处理 JVM 内部数据的一个。
NonProfiledCodeHeapSize我不明白和之间有什么区别ProfiledCodeHeapSize。该文件说:
分层编译还引入了一种新的编译代码类型:插装编译代码(分析代码)。
我的理解是,这里的“仪表化”意味着“带有计数器”,那么假设这真的是C1编译代码的逻辑是什么?另一个是C2?
我们将 Apache Ant 与 Nashorn JavaScript Engine 结合使用,该引擎在 jdk 15 及更高版本中已被弃用并删除。我试图找到如何从 Nashorn 切换到 Graal VM,但即使在 Apache 网站上也没有找到任何可用的信息。请告知我需要哪些罐子以及我应该放置它们。我们的代码需要改变什么。如果有人已经这样做了,请分享您的经验。我有一个针对 jdk1.8.0_311 运行的示例:
<?xml version="1.0" ?>
<project name="test" default="test">
<property environment="env"/>
<target name="test" >
<script language="javascript">
<![CDATA[
load("nashorn:mozilla_compat.js");
importPackage(java.time);
var today = new Date();
var date = today.getFullYear()+'-'+(today.getMonth()+1)+'-'+today.getDate();
self.log("This script is for Test Of Nashorn Javascript Engine");
print ("Today is: " + date );
]]>
</script>
</target>
</project>
Run Code Online (Sandbox Code Playgroud)
结果看起来像:
test:
[script] Warning: Nashorn engine is planned to be removed from a future JDK release …Run Code Online (Sandbox Code Playgroud) 我正在将 Maven 构建的 Java 8 应用程序升级到 Java 11。在我的 POM 中,我指定:
<properties>
<java.version>1.11</java.version>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
</properties>
Run Code Online (Sandbox Code Playgroud)
当我使用正常的 Maven 构建调用来构建我的应用程序时:
mvn verify -Plocal -Dspring-boot.run.jvmArguments="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"
Run Code Online (Sandbox Code Playgroud)
我得到:
[INFO] Scanning for projects...
[INFO]
[INFO] -----------------------< example.com:myapp-svc >------------------------
[INFO] Building myapp-svc 1
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-checkstyle-plugin:3.1.2:check (validate) @ myapp-svc ---
[WARNING] Old version of checkstyle detected. Consider updating to >= v8.30
[WARNING] For more information see: https://maven.apache.org/plugins/maven-checkstyle-plugin/examples/upgrading-checkstyle.html
[INFO] Starting audit...
Audit done.
[INFO] You have 0 Checkstyle violations.
[INFO]
[INFO] --- …Run Code Online (Sandbox Code Playgroud) 我已在 build.gradle 文件中添加了所有相关依赖项。尽管如此,当我尝试运行 Invoke SOAP 服务时,仍然出现以下错误。共享依赖项部分和错误详细信息。使用 Java 11。互联网上已经有很多答案,但似乎都不起作用。任何帮助/建议将不胜感激。
dependencies {
implementation 'org.codehaus.groovy:groovy-all:3.0.2'
implementation 'javax.jws:javax.jws-api:1.1'
cxfCodegen "jakarta.annotation:jakarta.annotation-api:1.3.5"
cxfCodegen "jakarta.xml.ws:jakarta.xml.ws-api:2.3.3"
cxfCodegen "jakarta.xml.bind:jakarta.xml.bind-api:2.3.3"
//implementation 'org.apache.cxf:cxf-spring-boot-starter-jaxws:3.5.0'
//implementation 'javax.xml.bind:jaxb-api:2.3.1'
compile 'javax.xml.ws:jaxws-api:2.3.1'
implementation 'com.sun.xml.messaging.saaj:saaj-impl:2.0.1'
implementation 'javax.xml.soap:javax.xml.soap-api:1.4.0'
implementation 'javax.xml.soap:saaj-api:1.3.5'
implementation 'com.sun.xml.ws:jaxws-rt:3.0.2'
implementation 'com.sun.xml.ws:rt:3.0.2'
implementation 'com.sun.xml.ws:jaxws-ri:3.0.2'
}
Run Code Online (Sandbox Code Playgroud)
获取错误堆栈跟踪下方
Exception in thread "main" javax.xml.ws.WebServiceException: Provider com.sun.xml.internal.ws.spi.ProviderImpl not found
at javax.xml.ws.spi.FactoryFinder$1.createException(FactoryFinder.java:61)
at javax.xml.ws.spi.FactoryFinder$1.createException(FactoryFinder.java:58)
at javax.xml.ws.spi.ServiceLoaderUtil.newInstance(ServiceLoaderUtil.java:103)
at javax.xml.ws.spi.FactoryFinder.find(FactoryFinder.java:112)
at javax.xml.ws.spi.Provider.provider(Provider.java:96)
at javax.xml.ws.Service.<init>(Service.java:112)
at com.example.BLZService.<init>(BLZService.java:40)
at dummypackage.DummySOAPClient.main(DummySOAPClient.java:21)
Caused by: java.lang.ClassNotFoundException: com.sun.xml.internal.ws.spi.ProviderImpl
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
Caused by: java.lang.ClassNotFoundException: com.sun.xml.internal.ws.spi.ProviderImpl
at …Run Code Online (Sandbox Code Playgroud) 我有以下枚举。
public enum AggregationType
{
MIN,
MAX,
AVERAGE
}
Run Code Online (Sandbox Code Playgroud)
假设我有一个传递枚举值的函数,例如
public Float someFunction(final AggregationType enum) {
return (float) provides.stream()
.mapToDouble(this::someFunc)
.average()
.orElse(-1);
}
Run Code Online (Sandbox Code Playgroud)
我想根据枚举值在流上应用此 .average() .min() .max() 方法。
我怎样才能做到这一点?我不想在 someFunction 中使用简单的 switch 函数,而是在这个 return 语句中使用。
所以我想要有类似的东西
public Float someFunction(final AggregationType enum) {
return (float) provides.stream()
.mapToDouble(this::someFunc)
.decideWhichMethodShouldBeUsed()
.orElse(-1);
}
Run Code Online (Sandbox Code Playgroud)
其中decideWhichMethodShouldBeUsed() 根据枚举决定使用哪个函数。
java-11 ×10
java ×7
maven ×3
arraylist ×1
enums ×1
graalvm ×1
gradle ×1
hotswapagent ×1
java-16 ×1
java-8 ×1
java-platform-module-system ×1
java-stream ×1
jit ×1
jvm ×1
kotlin ×1
list ×1
maven-plugin ×1
nashorn ×1
ojdbc ×1
soap ×1
sorting ×1
stream ×1
web-services ×1