标签: java-11

我可以将哪个 ojdbc 驱动程序用于 Oracle 12cR2 和 JDK 11 应用程序

问题: 我应该使用什么确切的 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 吗?

ojdbc java-11

3
推荐指数
1
解决办法
9014
查看次数

根据对象 JAVA 11 中值的自定义优先级对对象列表进行排序

我有一个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)

  1. 按学生成绩的顺序对列表进行排序,顺序为“不及格”、“通过”、“不可用”(不按字母顺序排列)成绩不及格的学生应排在列表的顶部。然后“通过”,然后“不可用”
  2. 如果多个学生的结果相同,则按rollNo升序排序。

最终结果应如下所示。

{"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 sorting list arraylist java-11

3
推荐指数
1
解决办法
2208
查看次数

如何在 Maven 编译中添加“--add-exports”编译器指令

使用 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)

maven java-platform-module-system kotlin java-11

3
推荐指数
1
解决办法
4228
查看次数

3
推荐指数
1
解决办法
1377
查看次数

包 javax.xml.bind.annotation 不存在错误

我正在尝试运行“ mvn clean install ”命令,但出现以下错误:

java:[42,22] 包 javax.xml.bind 不存在

你知道为什么吗?

java maven java-8 java-11

3
推荐指数
1
解决办法
4万
查看次数

关于分段代码缓存的小问题(http://openjdk.java.net/jeps/197)

我看到这个 JEP ( http://openjdk.java.net/jeps/197 ) 引入了 3 种类型的代码缓存。

对我来说最明显的一个是-XX:NonNMethodCodeHeapSize。这是处理 JVM 内部数据的一个。

NonProfiledCodeHeapSize我不明白和之间有什么区别ProfiledCodeHeapSize。该文件说:

分层编译还引入了一种新的编译代码类型:插装编译代码(分析代码)。

我的理解是,这里的“仪表化”意味着“带有计数器”,那么假设这真的是C1编译代码的逻辑是什么?另一个是C2

java jit jvm java-11 java-16

3
推荐指数
1
解决办法
201
查看次数

Apache Ant 与 Graal VM

我们将 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)

nashorn graalvm java-11

3
推荐指数
1
解决办法
2360
查看次数

将 Maven 插件升级到 Java 11

我正在将 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)

java maven-plugin maven java-11

3
推荐指数
1
解决办法
2万
查看次数

ClassNotFoundException:com.sun.xml.internal.ws.spi.ProviderImpl

我已在 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)

java soap web-services gradle java-11

3
推荐指数
1
解决办法
1万
查看次数

Java 11 根据枚举值选择要应用于流的方法

我有以下枚举。

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 enums stream java-stream java-11

3
推荐指数
1
解决办法
342
查看次数