JAVA module-info.java文件详解

目录
  • JAVA module-info.java文件
    • Java9
  • module-info.java什么意思

JAVA module-info.java文件

Java9

module-info.java

module 本模块的名称{
	exports 对外暴露的包路径;
	requires 需要依赖的其他模块名称;
}
  • module-info.java不是类,不是接口,是一些模块描述信息。module也不是关键字。
  • exports 对外暴露的包路径;

有些包你想要其他模块访问,有些包你不想要其他模块访问。

有哪些包,你想要被其他模块访问的,这些包的名字就写在exports后面。

就像import一样,但是不是导入,是导出。

  • requires 需要依赖的其他模块名称;

本模块需要关联、依赖的其他模块,就把其他模块名称写在后面。

只有一个模块不用写,java.base

//module mod.a中有:
//packet.abc.one
//和
//packet.abc.two
module mod.a{
    exports packet.abc.one;
}
module mod.b{
    requires mod.a; //模块b依赖模块a
    //b可使用a的one包
}

命名推荐使用完全英文小写,不要数字减号。

module-info.java什么意思

module-info.java什么意思,新版的eclipse一出来就看到这个文件,抱着试一试的心态。留着它。

结果导入类的时候发现出岔子了。

导类动作如下:

import org.apache.logging.log4j.core.Logger;

报错如下:

The type org.apache.logging.log4j.core.Logger is not accessible

上网搜了下,就是要加载的类不被许可类似这个意思。

也就是这货和go-module一样,是放许可的。

真是感觉天下的编程好雷同啊。这么设计的好处除了安全,还有什么呢。等我先试用一段时间之后再说

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 基于module-info.class的问题

    目录 module-info.class问题 Tomcat报错module-info.class module-info.class问题 1.module-info.class是个什么?干什么? 2.看名字module-info,即模块信息,自然想到是管理模块信息的.jdk9特性里的,在解压软件中直接干掉呗,试试没报错ok就行 3.pom文件导入 asm等配置后启动报错         <dependency>             <groupId>asm</groupI

  • 解决IDEA JDK9没有module-info.java的问题

    目录 IDEA JDK9没有module-info.java问题 module-info.java文件 IDEA JDK9没有module-info.java问题 1. 创建一个maven工程 2. 配置一下项目的编译环境 注意:必须声明为jdk9及其以后的版本,不然new中是没有module-info.java这个选项 下面是使用jdk8的时候,没有module-info.java这个选项 使用jdk10的时候,就有module-info.java这个选项 <build> <plugi

  • java读取resources文件详解及实现代码

    java读取resources文件详解及实现代码 Java项目中,经常需要将资源文件打包放在项目中,然后在项目中去读取对应的文件. 实现代码: String str = ReadFile.read(getClass().getResourceAsStream("sence/"+file)); public static String read(InputStream inputStream) { BufferedReader reader = null; String laststr

  • Java VisualVM监控远程JVM(详解)

    我们经常需要对我们的开发的软件做各种测试, 软件对系统资源的使用情况更是不可少, 目前有多个监控工具, 相比JProfiler对系统资源尤其是内存的消耗是非常庞大,JDK1.6开始自带的VisualVM就是不错的监控工具. 这个工具就在JAVA_HOME\bin\目录下的jvisualvm.exe, 双击这个文件就能看到一个比较直观的界面 从左边Applications树中可以知道,不光可以监控本地JVM运行情况, 还可以监控远程机器上的JVM运行情况. 本地监控:只要打开某个JAVA程序就会自

  • 在docker中部署tomcat并且部署java应用程序的步骤详解

    先给大家简单说下Docker的概念 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口. 1.先说如何在docker中部署tomcat 第一步:root用户登录在系统根目录下创建文件夹tomcat7,命令如:mkdir tomcat7,并且切换到该目录下:cd tomcat7: 第二步:创建Dockerfile,命令如:touch Docker

  • java 代理机制的实例详解

    java 代理机制的实例详解 前言: java代理分静态代理和动态代理,动态代理有jdk代理和cglib代理两种,在运行时生成新的子类class文件.本文主要练习下动态代理,代码用于备忘.对于代理的原理和机制,网上有很多写的很好的,就不班门弄斧了. jdk代理 实例代码 import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; publi

  • Java中的反射机制详解

    Java中的反射机制详解 反射,当时经常听他们说,自己也看过一些资料,也可能在设计模式中使用过,但是感觉对它没有一个较深入的了解,这次重新学习了一下,感觉还行吧! 一,先看一下反射的概念: 主要是指程序可以访问,检测和修改它本身状态或行为的一种能力,并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义. 反射是Java中一种强大的工具,能够使我们很方便的创建灵活的代码,这些代码可以再运行时装配,无需在组件之间进行源代码链接.但是反射使用不当会成本很高! 看概念很晕的,继续往下

  • Java中File的实例详解

    Java中File的实例详解 File 代表文件或者目录的类 构造函数 File(File parent,String child)---代表了指定父目录下的指定的子文件或者子目录 File(String pathname)---代表了指定路径对应的文件或者目录对象 重要方法 创建 createNewFile()---只能用来创建文件,并且一次只能创建一个文件,要求文件存储的目录必须真实存在 mkdir()---只能用来创建目录,不能用来创建多层目录 mkdirs()---创建多层目录 删除 d

  • Java中Properties的使用详解

    Java中有个比较重要的类Properties(Java.util.Properties),主要用于读取Java的配置文件,各种语言都有自己所支 持的配置文件,配置文件中很多变量是经常改变的,这样做也是为了方便用户,让用户能够脱离程序本身去修改相关的变量设置.今天,我们就开始Properties的使用. Java中Properties的使用 Properties的文档说明: The Properties class represents a persistent set of propertie

  • Java Benchmark 基准测试的实例详解

    Java Benchmark 基准测试的实例详解 import java.util.Arrays; import java.util.concurrent.TimeUnit; import org.openjdk.jmh.annotations.Benchmark; import org.openjdk.jmh.annotations.BenchmarkMode; import org.openjdk.jmh.annotations.Measurement; import org.openjdk

  • Java 实现FTP服务实例详解

    Java 实现FTP服务实例详解 1.FTP简介 FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为"文传协议".用于Internet上的控制文件的双向传输.同时,它也是一个应用程序(Application).基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件.在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上传"(Upload)."

  • Java 8 lambda表达式引入详解及实例

    Java 8 lambda表达式引入详解及实例 eclipse 下载安装 Help -> EclipseMarketplace -> 搜索Java 8 Kepler ->Java 8 support for eclipse Kepler SR2 安装完成后需要重启 Android Studio 在project的build.gradle文件中添加 buildscript { dependencies { classpath 'me.tatarka:gradle-retrolambda:3

随机推荐