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一样,是放许可的。
真是感觉天下的编程好雷同啊。这么设计的好处除了安全,还有什么呢。等我先试用一段时间之后再说
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
解决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
-
基于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
-
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
随机推荐
- jQuery ui autocomplete选择列表被Bootstrap模态窗遮挡的完美解决方法
- Windows Vista 宽屏LCD提供的支持 与设置方法第1/2页
- 变态入侵之有史以来最酷的Windows后门sethc.exe
- js判断输入是否为数字的具体实例
- Bootstrap选项卡动态切换效果
- Linux下安装配置nginx详解
- php实现的通用图片处理类
- C 语言中strstr函数实例详解
- nginx禁止dedecms目录php执行权限
- C++类中的常数据成员与静态数据成员之间的区别
- 全flash站制作剖析
- 一则python3的简单爬虫代码
- SQLSERVER 清除历史记录的方法
- C/C++ 连接MySql数据库的方法
- jQuery循环动画与获取组件尺寸的方法
- JS中eval函数的使用示例
- java使用httpclient发送post请求示例
- java动态方法调度实例分析
- C#验证用户输入信息是否包含危险字符串的方法
- Android编程之文件的读写实例详解