首页 » 科学 » Java 中的Jlink详解_本身的_法式

Java 中的Jlink详解_本身的_法式

少女玫瑰心 2024-11-20 06:44:09 0

扫一扫用手机浏览

文章目录 [+]

常日,我们利用默认的JRE运行程序,但是如果您要创建自己的JRE,则可以利用jlink观点。

为什么要建立自己的JRE?

Java 中的Jlink详解_本身的_法式 Java 中的Jlink详解_本身的_法式 科学

让我们来看一个例子。

Java 中的Jlink详解_本身的_法式 Java 中的Jlink详解_本身的_法式 科学
(图片来自网络侵删)

假设我们有一个大略的“ hello world”程序,例如:

class Test {

public static void main(String[]args) {

System.out.prinltn("Hello World");

}

}

如果要在我们的系统上运行此小程序,则须要安装默认的JRE。
安装默认的JRE之后,我可以愉快地运行我的小型“ hello world”运用程序。

问题

要实行这个小的“ hello world”运用程序,我们须要以下.class文件:

· 测试类

· 字符串类

· 系统类

· 工具类

在这里,这4个.class足以运行我的运用程序。

Oracle供应的默认JRE包含 4300多个预定义的Java .class文件。

如果我利用默认的JRE实行“ hello world”运用程序,则将实行所有预定义的.class文件。
但是,如果我只须要3-4个.class文件来实行“ hello world”运用程序,那么为什么我须要掩护外部.class文件?

因此,默认JRE的问题在于,无论您是否乐意,它都会实行所有预定义的.class文件。

并且,如果您还查看默认JRE的大小,则将创造它为203 MB。
为了实行大略的1 KB代码,我必须在打算机中掩护203 MB的JRE。
这完备是摧残浪费蹂躏内存。

因此,利用默认的JRE意味着:

· 摧残浪费蹂躏内存并降落性能

· 将无法开拓包含很少内存的微做事。
=

· 不适宜物联网设备

因此,Java不是微做事和IoT设备的最佳选择,但这只是Java 1.8中的一个问题。
同时,Java 1.9带有jlink。
利用jlink,我们可以创建自己的小型JRE,该JRE包含我们想要的唯一干系类。
不会摧残浪费蹂躏内存,性能将会提高。

Jlink许可我们链接仅所需模块的凑集以创建运行时映像(我们自己的JRE)

利用所需模块创建我们的JRE

假设我的“ hello world”程序位于名为DemoModule的模块中。
我们可以利用Java 9编译基于模块的运用程序:

javac –module-source-path src -d out -m demoModule

成功编译后,将创建一个包含Test.class文件的文件夹。
如果利用默认的JRE运行此基于模块的运用程序,则可以利用以下命令:

java –module-path out -m demoModule/knoldus.Test

但是正如我们谈论的那样,我们的“ hello world”程序仅须要几个.class文件-String.class,System.class和Object.class。
这些.class文件是java.lang包的一部分,而java.lang包是java.base模块的一部分。
因此,如果我想运行“ hello world”程序,则只须要两个模块-DemoModule和java.base模块。
利用这两个模块,我们可以创建自己的自定义JRE来运行该运用程序。

您可以在路径中找到java.base模块:

java\jdk-9\jmods

因此,只需复制java.base模块并将其粘贴到具有Test.class文件的文件夹中即可。
现在,我们可以利用以下命令创建自己的JRE:

jlink –module-path out –add-modules demoModule,java.base –output myjre

成功实行此命令后,您会创造有一个myjre文件夹,除了您自定义的JRE外,什么都没有。
只需按照几步利用自定义的JRE实行程序

· cd myjre

· cd bin

· java -m demoModule/knoldus.Test

通过实行这些命令,您可以愉快地运行“ hello world”运用程序。
这便是jlink的全部!
我希望您现在对如何利用它来制作自己的JRE有一个清晰的理解。

末了,开拓这么多年我也总结了一套学习Java的资料与口试题,如果你在技能上面想提升自己的话,可以关注我,私信发送领取资料或者在评论区留下自己的联系办法,有韶光记得帮我点下转发让跟多的人看到哦。

标签:

相关文章