美文网首页
java模块化五个重要的命令

java模块化五个重要的命令

作者: 何德何能者 | 来源:发表于2019-08-09 16:20 被阅读0次

java mods
java模块系统的五个关键指令

--add-exports 访问内部API

如果旧代码迁移到JDK9+, 编译报package x.x.x is not visible 的错误时,是因为旧代码访问了模块的内部API;为了能够访问内部API,需要在编译时加上
--add-exports java.xx/x.x.x=ALL-UNNAMED

--add-open 反射访问内部API

但是,这种方式只是在编译期起作用;那些在x在运行时才知道访问了内部API的问题需要新的方式解决; 错误异常通常是 java.lang.reflect.InaccessibleObjectException..
解决方式是运行时加上
--add-opens x.x/x.x.x=All-UNNAMED
特别时那些通过反射调用的类和方法;

--add-modules 添加依赖模块

如,项目依赖Java EE的相关xml代码, 编译和运行时就需要添加对应的模块
javac --add-moudles java.xml.bind

--patch-modules指定到特定模块

迁移过程中讨论拆包装,我们看到了一个使用注释的项目的例子 @ 生成(从java.xml.ws.annotation模块)和 @ 非空(从JSR 305实现)。我们发现了三件事:

  • 两个注释都在 javax .annotation包中,因此创建了一个分割
  • 我们需要手动添加模块,因为它是一个Java EE模块
  • 这样做会使拆分包的JSR 305部分不可见
    我们可以使用 --patch-module来修补分割:
java
    --add-modules java.xml.ws.annotation
    --patch-module java.xml.ws.annotation=jsr305-3.0.2.jar
    --class-path $dependencies
    -jar $appjar
--add-reads 模块读取另一个模块

五个重要的命令

相关文章

  • Java9初探(二)

    再谈Java9模块化 在之前已经提到了作为java9最重要的特性就是模块化。有了模块化java9变得更轻量级。在编...

  • java模块化五个重要的命令

    java modsjava模块系统的五个关键指令 --add-exports 访问内部API 如果旧代码迁移到JD...

  • java9 模块化初体验

    java9发布有一段时间了,模块化是java9的一个重要新特性。今天有时间,就体验一把java9的模块化功能。 创...

  • 探索Java 9的模块化

    博客原文 随着 java 9 的正式发布,java生态又迎来了新的变革,模块化是最重要的变化。 由于Jigsaw项...

  • Java命令行工具学习--jps详解

    title: Java命令行使用 本文我们将对java内置命令行使用分析,这些命令行在java程序优化中扮演着重要...

  • Java 9 平台级模块系统

    模块化是 Java 9 一个非常重要的特性,终于有时间整理一下这方面的内容了。 模块化是软件工程中非常重要的一个概...

  • 简述Java应用的启动流程

    首先回顾Java最重要的两个命令 javac 编译java源代码文件为字节码 java 运行编译后的java程序...

  • java模块化 一

    学习java模块化的第一个程序,hello world!用idea建个java程序 选择jdk版本,模块化是jdk...

  • JAVA9模块化详解(一)——模块化的定义

    JAVA9模块化详解(一)——模块化的定义 前言 java9已经出来有一段时间了,今天向大家介绍一下java9的一...

  • java9 模块化系统小试

    JPMS 全称是 Java Platform Module system(Java 平台模块化系统)。它的目的简单...

网友评论

      本文标题:java模块化五个重要的命令

      本文链接:https://www.haomeiwen.com/subject/cdehjctx.html