首页 > TAG信息列表 > java-module

java-为什么–limit-modules对我不起作用?

我有以下程序: package org.example; import com.google.common.primitives.Ints; // This is a guava class public class Example { public static void main(String[] __) { System.out.println(Ints.class); } } 当我将此程序作为自动模块运行时,一切都很好

将Jetty 9用作Java 9模块会产生ClassNotFoundException

我将Jetty 9.4.8.v20171121与Java 9结合使用,这是我加载的jetty模块的列表: jetty-server-9.4.8.v20171121.jar jetty-servlet-9.4.8.v20171121.jar jetty-servlets-9.4.8.v20171121.jar jetty-util-9.4.8.v20171121.jar jetty-xml-9.4.8.v20171121.jar jetty-http-9.4.8.v201

为什么Java自动模块不包含打开部分

有一种机制可以通过将常规jar放置到modulepath而不是classpath上,将其从java-9开始转换为automatic module.自动模块具有以下属性: An automatic module is a named module that is defined implicitly, since it does not have a module declaration. Every package in an a

java-以编程方式为JarFile提取模块名称的最佳方法是什么?

我正在研究Java 9的启动器库,该库使用模块分层.为了在该层中添加模块,我需要将模块名称(作为字符串)传递给父级的配置. ModuleLayer Javadoc在类文档的末尾提供了一个示例. 现在,我不再允许我的库用户来声明模块名称,而是希望仅将jar文件位置作为String,URL,File或JarFile传递. 所

Java-想法:发现太多模块声明

我想创建hello world java 9应用程序,并以intellij的想法启动它. 现在我有以下结构: 内部模块-info.java的内容: module my.module.Second { requires my.module.First; } 外部模块-info.java的内容: module my.module.First { exports my.pack; } 但是idea抱怨我的项目:

Kotlin 1.2.10和Java 9对自动模块有相反的规则吗?

我有一个使用Kotlin Gradle插件的Gradle项目.我想构建一个Java 9模块,所以我的目录结构如下所示: src/main/java/ - module-info.java src/main/kotlin/ - Foo.kt - Bar.kt build.gradle ... 我的build.gradle声明了以下依赖项: dependencies { compile "org.jetb

java – 为什么不允许导出整个模块?

在Java 9的模块声明中有2个结构: exports com.foo; 和 opens com.foo; 其中,导出授予编译时访问权限,而opens则允许运行时访问,作为反射和资源. 打开对导出有一个宽容,您可以将整个模块定义为打开,结果与显式打开每个包相同: open module com.mod { 但是没有相似的结构 export

什么是Java 9中的开放模块以及如何使用它

模块与open关键字之前和之后有什么区别? 例如: open module foo { } module foo { } 解决方法:为了提供对模块的反射访问,Java 9引入了open关键字. 您可以在模块声明中使用open关键字创建开放模块. 一个开放模块允许对其他模块的所有包进行反射访问. 例如,如果你想使用一些严重依

自包含的应用程序,内置Java

我已经看过几篇在Java 9中简要提到自包含应用程序的在线演示文稿,但我有一个问题需要我解决. 使用新模块系统,您现在只允许包含运行应用程序所需的最少代码.但是,希望运行应用程序的系统是否仍需要JRE,或者是否可以包含在程序中的基本模块中? 我怀疑它是后者,因为下载最新版Java的页

java – 模块和JAR文件有什么区别?

我从What’s New in Java9开始学习Java 9,讨论的热门话题之一是模块化JDK. JAR是文件模块吗? 模块与JAR文件有何不同?解决方法:模块:Java 9中引入的新语言功能(类似于类,接口,包等),由一组包组成,类似于包由一组类型组成. JAR:一种归档文件格式,它捆绑代码和资源,可以由JVM加载. 更具体

java – org.springframework.cglib.core.ReflectUtils $1的非法反射访问

我的JDK 9 181 Spring Boot 2.0.0.BUILD-SNAPSHOT CLI应用程序在启动时显示此警告: WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by org.springframework.cglib.core.ReflectUtils$1 (jar:file:/home/jan/src/fm-cli/target

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

从Java-8开始,我知道类加载器的层次结构如下: – Bootstrap classloader -> Extension classloader -> Application classloader Java 9中类加载器层次结构的变化是什么?它是如何工作的?解决方法:在Java-9中修订的ClassLoader声明: The Java run-time has the following built-i

需求和需要Java 9中的传递语句有什么区别?

需求和需要模块声明中的传递模块语句有什么区别? 例如: module foo { requires java.base; requires transitive java.compiler; } 解决方法:可读性回顾 如果模块棒需要模块饮料,那么模块系统…… >强制饮酒(称为可靠配置)>允许酒吧阅读饮料(称为readability)>允许bar中的

资源文件放在构建Java 9模块的Gradle项目中的哪个位置?

从IDEA 2018.2.1开始,IDE启动错误突出显示包“不是 在模块图中“来自已经模块化的依赖项.我在我的项目中添加了一个module-info.java文件并添加了必需要求声明,但我现在无法访问我的src / main / resources目录中的资源文件. (有关完整示例,请参阅this GitHub project.) 当我使用./

Java 9:Eclipse中无法访问模块java.xml.bind

我将Java 8中的maven项目迁移到Java 9项目,而没有Eclipse OxyGen 1a中的任何构建工具. 所以我的module-info.java看起来像这样: 但java.xml.bind不可访问,虽然它在我的模块路径中: 那么这里有什么问题?解决方法:编译未命名的模块时,默认情况下无法访问java.xml.bind,但在模块化项目

java – 如何以编程方式加载JDK模块?

假设我们有模块A动态加载模块B(使用类ModuleFinder,ModuleLayer等).最后一个需要标准模块java.sql,它没有加载到模块A的引导层.如何使用Java代码从JDK(或JRE)加载所需的java.sql? 编辑 这个示例maven项目演示了我的问题: 项目结构: │ pom.xml │ ├───loader │ │ pom.xml

包’com.example’从’javafx.base’和’javafx.base’中读取包’javafx.beans’

在module-info.java中,我收到错误 Package ‘com.example’ reads package ‘javafx.beans’ from both ‘javafx.base’ and ‘javafx.base’. 迁移(Java 8到Java 11)不仅慢慢地让我感到沮丧,而且肯定地,这个错误对我没有任何意义. 我的build.gradle的依赖项部分: def springFr

Java 9新的docs结构 – 哪里有“旧的”java包?

我习惯从以下链接访问Java SE文档,我可以从中搜索java.awt,java.util等软件包: https://docs.oracle.com/javase/7/docs/api/ https://docs.oracle.com/javase/8/docs/api/ 但是,在访问similar link for version 9时,我可以看到一些模块结构与Java SE文档有很大不同,直到版本8.“旧

如何从Java 9中的另一个模块获取ResourceBundle?

我有两个模块:module-a和module-b. Module-a具有属性文件(com / foo / texts_en.properties). Module -a导出com.foo包.在module-b中我想获得这个资源.为此,我在module-b中执行以下操作: Module moduleA = ClassFromModuleA.class.getModule(); ResourceBundle resourceBundle = Res

如何从Java 9中的另一个模块添加到JavaFX Scene样式表?

我有两个JPMS模块: >模块-a >模块-b 在模块-a中我有类似的东西: public class MyAppplication extends Application { .... public static void addCss(String path) { stage.getScene().getStylesheets().add(path); } } 在module-b中我有CSS文件,我想添加到MyApp

Spring项目的Java 9 Jigsaw(模块)的任何计划?

Java 9计划很快发布(7月27日).是否有计划发布符合Java 9标准的Spring项目版本(Java 9 project Jigsaw)?解决方法:Spring的下一个主要版本Spring 5将不是模块化的.但是,您可以在模块信息文件中使用Spring 5 jar / artifacts作为自动模块.见official blogpost和What’s new annoucemen

如何使用Java 8运行使用非导出包的Java 9编译代码

我使用Java-8编译器编译了以下代码: package pack; import sun.util.calendar.CalendarUtils; public class A { public static void main(String[] args) { System.out.println(CalendarUtils.isGregorianLeapYear(2018)); } } 我使用Java-8编译器编译了上面的代

Java 9中的com.sun.javafx.collections

我需要重新编译java应用程序,在Java 8上编写.应用程序使用com.sun.javafx.collections.ObservableListWrapper类,但在编译java 9时出现错误: Error:(3, 22) java: package com.sun.javafx.collections is not visible (package com.sun.javafx.collections is declared in module

java – ResolvedModule,Module和Observable Module之间的区别是什么

以下各项状态的文档如下: ResolvedModule A module in a graph of resolved modules. ResolvedModule defines the configuration method to get the configuration that the resolved module is in. It defines the reference method to get the reference to the module

添加`module-info.java`后,Flyway无法在测试期间访问资源

升级到Java 10(从8开始)之后,我设法让一切正常,但是在添加module-info.java之后,我遇到的一个问题是,当运行测试时,Flyway无法访问SQL文件.命令行. 启动应用程序或从IntelliJ工作运行测试(但我发现在IntelliJ上运行时,许多与模块相关的问题并不明显).使用mvn spring-boot启动应用程