我是靠谱客的博主 现实狗,最近开发中收集的这篇文章主要介绍JDK9 模块初探,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

jdk10已经出来了,现在还在用jdk1.8,连9还没看过,今天找到机会在网上搜了下jdk9的新特性,其他都还好,有一个module的东西,据说是模块化,对这个东西很好奇,便在网上搜了一搜,写的有些看不懂,找了很多终于弄出了个demo。

首先下载安装jdk9或者以上版本,安装与之前的版本无二致。

配置好环境变量后,运行命令java


可以发现,这里java运行命令多了个-m(-module)

也就是说若是运行模块化的java程序,要调用java -m命令了

同样的,运行javac命令也会有--module的相关命令,那么好的,我们直接试试看怎么用

首先创建两个文件夹,一个叫做module,一个叫做test

mkdir module test


我们打算用test中的java类去调用module中的类,先创建简单的类,这里加上包名

一个Person类,顺便将 com.test包名以文件夹的形式创建在module文件夹下

package com.test;


public class Person {
private String name;
private int age;

public Person() {
}

public Person(String name , int age) {
this.name = name;
this.age = age;
}


public String getName() {
return name;
}


public void setName(String name) {
this.name = name;
}


public int getAge() {
return age;
}


public void setAge(int age) {
this.age = age;
}

@Override
public String toString() {
return "the man name is '" + name + "', age is '" + age + ".'";
}

}


然后再module文件夹下创建module-info.java,这个是声明或者引用module的文件

module com.test {
  exports com.test; 

}

紧接着创建测试类,很简单的一个类,用来打印出person和它的module,同时以文件夹的形式创建包名com.module_test_client

package com.module_test_client;


import com.test.Person;


public class Test {

public static void main(String[] args){
Person p = new Person("tom", 112);
System.out.println("------------------------");
System.out.println("person module : " + p.getClass().getModule());
System.out.println(p);
}

}

然后在test文件夹下建立module-info.java,并声明要用到的其他module

module com.test_client {

    requires com.test;
 

}


运行tree /f 命令现在的文件目录如下:


好了,完成了编码工作之后,我们首先来编译module

javac -d output modulecomtestPerson.java modulemodule-info.java

然后编译test

javac --module-path output -d outputtest testmodule-info.java testcommodule_test_clientTest.java

运行Test类

java --module-path output;outputtest -m com.test_client/com.module_test_client.Test


可以看到成功运行,并且输出了module为com.test

当然我们也可以将module打成jar包


好了,这个是简单的module调用例子

最后

以上就是现实狗为你收集整理的JDK9 模块初探的全部内容,希望文章能够帮你解决JDK9 模块初探所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部