Tag: java module

Java 9:java.lang.ClassNotFoundException:Spring Boot应用程序中的java.sql.SQLException

我用Java 9构建了一个Spring Boot应用程序… sourceCompatibility = 9 targetCompatibility = 9 …并使用以下命令启动它:java –module-path lib -m my.app。 … Caused by: java.lang.NoClassDefFoundError: java/sql/SQLException at spring.beans@5.0.2.RELEASE/org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:161) at spring.boot@2.0.0.M7/org.springframework.boot.SpringApplication.createSpringFactoriesInstances(SpringApplication.java:436) … 5 more Caused by: java.lang.ClassNotFoundException: java.sql.SQLException at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source) at java.base/java.lang.ClassLoader.loadClass(Unknown Source) … 7 more 注意:我使用classpath而不是–module-path成功启动了应用程序 编辑:谢谢你的建议! 最后,我找到了一个“魔术组合”来启动应用程序。 我修改了命令行,从lib中删除了javax.transaction-api-1.2.jar并将其放在类路径上以删除模块java.sql和javax.transaction.api之间的包(javax.transaction.xa)拆分冲突 java –module-path lib –add-modules java.sql,java.instrument,java.xml.bind -cp javax.transaction-api-1.2.jar -m my.app

我该如何命名我的Java 9模块?

假设我有一个包含groupId = org.abc和artifactId = myLibrary 。 模块名称的推荐名称是什么: myLibrary或org.abc.myLibrary ? 是否有任何命名方案的官方指南?

如何解压缩文件jre-9 / lib / modules?

在JRE-9/lib目录中(至少在Windows上),有一个名为modules的新文件,其大小约为107 MB。 是否可以提取该文件或列出其中的java模块? 我可以看到jdk-9/bin/jmod.exe有一个名为jmod的新工具,但是它用于读取位于jdk-9/jmods .jmod文件,它无法读取文件modules 。

Javadoc如何处理Java 9中模块的可见性?

Javadoc工具基于可访问性修饰符生成文档。 默认情况下,它记录所有public和protected类,字段和方法。 可以使用以下选项更改此设置: -上市 仅显示公共类和成员。 -protected 仅显示受保护的公共类和成员。 这是默认值。 -包 仅显示包,受保护和公共类和成员。 -私人的 显示所有类和成员。 Java 9引入了模块的概念,项目Jigsaw将其应用于现有的JDK。 Mark Reinhold的演讲(关于模块的一系列讨论中的第三篇)展示了public修饰符现在如何具有不同的可访问性级别,具体取决于模块的可见性(通过exports ): 公开给大家 公开但仅限于特定模块 仅在模块内公开 由于现在并非所有公共成员都可以访问,因此继续使用相同的Javadoc生成方案就没有多大意义了。 只有那些暴露在“足够”水平的成员才应该被记录下来。 Javadoc模块是否可识别? 除了上面的命令选项还有处理额外曝光层的命令选项吗? 对于仅暴露给特定模块的公共成员,Javadoc是否列出了这些,如 public static void getDefaultThing() ?

Java 9中的类加载器层次结构

从Java-8开始,我知道类加载器的层次结构如下: – Bootstrap类加载器 – >扩展类加载器 – >应用程序类加载器 Java 9中类加载器层次结构的变化是什么?它是如何工作的?

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 9 HttpClient java.lang.NoClassDefFoundError:jdk / incubator / http / HttpClient

我试图在Java 9 maven项目中使用孵化器中的HttpClient。 我没有得到任何编译问题。 该项目成功建立。 但是当我尝试运行Main类时,它会给我以下exception: Exception in thread “main” java.lang.NoClassDefFoundError: jdk/incubator/http/HttpClient at java9.http_client.Main.main(Main.java:18) Caused by: java.lang.ClassNotFoundException: jdk.incubator.http.HttpClient at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:185) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496)…. 我的代码只是一个模块信息文件和一个只调用google.com并尝试读取响应的Main类: module-info.java module java9.http_client { requires jdk.incubator.httpclient; } Main.java public final class Main { public static void main(String[] args) { try { HttpClient client = HttpClient.newHttpClient(); URI httpURI = new URI(“http://www.google.com/”); […]

Java 9迁移期间找不到不兼容的类型,等式约束和方法

在将我们的一个项目迁移到Java 9(build 9 + 181)时 ,我面临着一个特殊的问题,在一些与类型推断和java模块相关的库中看起来是不正确的实现。 我正在使用dropwizard-core(1.1.0)和guice(4.1.0)配置如下: public class CustomService extends io.dropwizard.Application { public static void main(String[] args) throws Exception { new CustomService().run(args); } // other initializations @Override public void run(CustomServiceConfig config, io.dropwizard.setup.Environment environment) throws Exception { com.google.inject.Injector injector = createInjector(config, environment); environment.jersey().register(injector.getInstance(SomeResource.class)); //line 45 environment.healthChecks().register(“DBHealth”, injector.getInstance(HealthCheck.class)); environment.servlets().addFilter(“Filter-Name”, SomeFilter.class) .addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), true, “/*”); } private com.google.inject.Injector […]

Java 9 – “模块”和“JAR”文件有什么区别?

我正在从Java9的What’s New中学习Java 9,讨论的热门话题之一是模块化JDK 。 我有些疑惑: JAR文件是模块吗? 模块与JAR文件有何不同?

什么是自动模块?

stackoverflow上多次提到自动模块,但我找不到自动模块的完整,简洁和自给自足的定义。 那么,什么是自动模块? 它是否导出所有包裹? 它打开所有包裹吗? 它是否读取所有其他模块?