java-9相关内容
我们使用 maven 并且具有依赖于其他内部工件的工件。我正在迁移到 java-9 ,并打算首先将所有内容迁移到Java 9而不模块化代码(即在未命名的模块中)。 我遇到的问题是我们依赖 java.xml.bind ,现在不包含在默认模块。是否有一种“正确”的方式来表达对Maven的 java.xml.bind 的依赖? 解决方案 模块系统讲述了未命名模块的方式。从类路径加载应用程序
..
Java 9 已弃用六个模块它包含Java EE API 并且很快就会即将被删除: java.activation javax.activation package java.corba , javax.activity , javax.rmi , javax.rmi.CORBA , org.omg。* packages java.transaction with javax.trans
..
我有一些使用JAXB API类的代码,这些类在Java 6/7/8中作为JDK的一部分提供。当我使用Java 9运行相同的代码时,在运行时我得到错误,表明找不到JAXB类。 JAXB类已作为一部分提供自Java 6以来的JDK,为什么Java 9不再能找到这些类? 解决方案 JAXB API被认为是Java EE API,因此不再包含在Java SE 9中的默认类路径中。在Java
..
我遇到了Java 9的类加载器问题。 此代码适用于以前的Java版本: private static void addNewURL(URL u)throws IOException { final Class [] newParameters = new Class [] {URL.class}; URLClassLoader urlClassLoader =(URLClass
..
我们基于Java的应用程序有一个很小的“bootloader.jar”和核心应用程序jar。核心应用程序jar可以从默认(文件系统)位置加载,也可以从上次运行的应用程序可能已下载更新的jar的其他位置加载。引导程序运行以下代码: final List jars = getJarsToAddToClasspath(); final String mainClassName
..
我想通过 jar 命令创建多版本jar(适用于Java 8和Java 9)。 有几个Netbeans IDE项目:com.jdojo.mrjar.jdk8,com.jdojo.mrjar.jdk9。 项目源代码为此处。 使用命令行我转到父文件夹并运行命令。 当我尝试这样做时: jar --create --file mrjars / com.jdojo.mrjar。 jar -
..
我有3罐杰克逊图书馆 jackson-core-2.8.10.jar jackson-annotations-2.8.0.jar jackson-databind-2.8.10.jar 我成功地为core和annotation创建了module-info.java,并使用jdeps将它们转换为Named maodule。 对于databind,我尝试了以下命令: jde
..
我正在从 Java9中的新功能中学习Java 9讨论中的一个热门话题是 模块化JDK 。 我有些疑惑: JAR文件是模块吗? 模块与JAR文件有何不同? 解决方案 模块:Java 9中引入的新语言功能(类似于class,interface,package等)由一组包组成,类似于包如何由一组类型组成。 JAR :一种存档文件格式,它捆绑代码和资源,可以由JVM加载。
..
在 java9 之前,将外部jar添加到类路径在运行时通过编程方式使用每个人: URLClassLoader sysloader =(URLClassLoader)ClassLoader.getSystemClassLoader(); 方法方法= URLClassLoader.class.getDeclaredMethod(“addURL”,new Class [] {URL.class
..
Java 9支持私有接口方法。 此支持允许接口的非抽象方法在它们之间共享代码。私有方法可以是静态的或实例。 接口的私有方法可以是 abstract 还是 default ? 请问一个例子,其中“ private static 接口方法“在代码方面很有用吗? 解决方案 否 ,接口中的私有方法应该设计用于在接口实现内部的一段代码中进行分组。由于这些属于实现(由正文组成)而不是
..
Java 9即将推出,更多功能将添加到Java接口,如私有方法。接口中的 default 接口方法在Java 8中添加,基本上是支持在集合中使用lambdas ,而不会破坏与以前版本语言的复古兼容性。 在Scala中,内部方法 trait s非常有用。但是,与使用 default 方法的Java相比,Scala使用不同的方法处理 trait 。考虑多重继承解析或使用 trait s作为 mi
..
“作为添加对Lambda Expressions的支持的努力的一部分,简要考虑将接口中的私有方法支持包含在Java SE 8中,但是为了更好地专注于Java SE 8的更高优先级任务而被撤回。”现在建议支持私有接口方法,从而使接口的非抽象方法能够在它们之间共享代码。“ 所以说 http://openjdk.java.net/jeps/213 并在错误报告中说
..
我使用Spring Boot 2.0.0.RC1,JDK 9.0.4,IntelliJ IDEA 2017.3.4 Ultimate,Gradle 4.5.1。 Spring Boot RC1版本(严格来说,Spring Framework 5.0.3.RELEASE)有一个已知问题: https: //jira.spring.io/browse/SPR-15859 ,我也在这里看到它 https
..
我在 Linux Mint 18.2 上使用 Intellij IDEA 2017.2.5 并尝试添加新的openjdk-9 SDK 但IDEA不接受openjdk 9为有效JDK: this问题。 简短的原因是Debian软件包中存在错误编译的lib / jrt-fs.jar文件的问题。 有关详细信息,请参阅此答案
..
无法使用module-info在IntelliJ IDEA中编译java 9项目。 创建项目 添加模块 使用main创建一个类(不运行module-info.java) 添加模块信息.java 运行主 失败 配置 模块信息 模块httpexample { } 错误 错误:(1,1)java:文件应位于源路径上,或位于模块的补丁路径上 Intell
..
组件详细信息 - 使用 IntelliJ IDEA 2017.1 CE 和 jdk-9-ea + 154 main() - 设置 set2 = Set.of(“a”,“b”,“c”); set2.forEach(System.out :: println); module-info.java 模块集合{ 需要java.base;
..
我正在使用 jdk9-ea 149 并创建了一个样本 javafx应用程序 IntelliJ不明白java库,它显示红色中的所有import语句,它们都变灰 .even java.util.List,java.util.ArrayList 它有同样的问题。 我可以在外面编译表单,但我无法从 IntelliJ 2016.3.2 Ultimate编译代码版本。 看起来我们需要向Int
..
当我在IDEA中运行主类时,它将模块及其依赖项放在模块路径上。是否可以将其更改为类路径? 解决方案 如果您没有定义模块信息,IDEA会设置应用程序和您对类路径的依赖关系。由于你有一个模块信息,它是一个显式模块,所以它必须在模块路径上。通常,您现在可以将自己的dependecies作为自动模块处理。 但是,您的依赖关系至少有充分的理由进入类路径。我们在这里讨论了为什么Java 9不会简
..
我正在尝试在IntelliJ中启动一个新的JDK 9项目,但是当我尝试运行它时,我在make过程中遇到以下错误: 错误:java:无效标志:-release 我知道我没有正确设置但是可以'似乎找不到任何与在IntelliJ中使用Jigsaw建立项目相关的内容。 编辑 这是一个屏幕截图问题。无法在任何地方找到与此相关的任何内容。 我在IDE中没有编译器错误。它只是在buil
..
我正在尝试熟悉Java 9模块以及如何在IntelliJ中定义它们。除此之外,我想使用 - patch-module 编译器/ JVM标志来解决拆分包问题,我不知道如何使它在IntelliJ中工作。 我正在使用IntelliJ IDEA 2017.2.1使用Java HotSpot(TM)64位服务器VM构建#IC 172.3544.35(内置9 + 180,混合模式)。 这是我的源文
..