龙空技术网

Java 9揭秘-创建你的第一个模块(三)

IT民工张大川 90

前言:

目前咱们对“javac 指定lib”大约比较珍视,咱们都想要剖析一些“javac 指定lib”的相关资讯。那么小编也在网摘上汇集了一些对于“javac 指定lib””的相关内容,希望姐妹们能喜欢,兄弟们一起来了解一下吧!

打包模块代码

我们将模块的编译代码打包成一个模块化的JAR。 需要使用位于JDK_HOME\bin目录中的jar工具。注意, 该命令在一行中输入,命令的最后一部分是一个点,表示当前目录。

C:\Java9Revealed>jar --create --file lib/com.jdojo.intro-1.0.jar --main-class com.jdojo.intro.Welcome--module-version 1.0-C mods/com.jdojo.intro .

这个命令有如下选项:

--create选项表示要创建一个新的模块化JAR。

--file选项用于指定JAR的位置和名称。将新的JAR保存在lib目录中,其名称将为com.jdojo.intro-1.0.jar。我将JAR包的版本1.0包含在名称中。

--main-class选项指定public static void main(String[])方法作为应用程序入口。当您指定此选项时,jar工具将在module-info.class文件中添加一个属性,其值是指定类的名称。 jar工具还使用此选项将Main-Class属性添加到MANIFEST.MF文件中。

--module-version选项将模块的版本指定为1.0。 jar工具将把这些信息记录在module-info.class文件的属性中。请注意,将模块版本指定为1.0不会影响JAR的名称。即使名称中包含1.0以指示的版本。该模块的实际版本由此选项指定。

-C选项用于指定JAR命令的工作目录。将mods\com.jdojo.intro目录指定为jar工具的工作目录。这将使jar工具从该目录中读取需要包含在JAR中的文件。

命令的最后一部分是一个点(.),这意味着jar工具需要包含工作目录mods\com.jdojo.intro下所有文件和目录。请注意,这个参数和-C选项一起使用。如果不提供-C选项,则该点将被解释为C:\Java9Revealed目录,因为该目录是当前命令行运行的目录。

当命令成功运行,它创建以下文件:

C:\Java9Revealed\lib\com.jdojo.intro-1.0.jar

要确保你的JAR包含com.jdojo.intro模块的定义,请运行以下命令。

C:\Java9Revealed>java --module-path lib --list-modules com.jdojo.intro

该命令将模块路径指定为lib目录,这意味着lib目录将用于搜索应用程序模块。 将com.jdojo.intro作为模块名称传递给--list-modules选项,该选项将打印模块描述以及模块的位置。 如果获得类似于以下内容的输出,则模块化JAR已正确创建:

C:\Java9Revealed>java --module-path lib --list-modules com.jdojo.intro

java.activation@9.0.4

java.base@9.0.4

java.compiler@9.0.4

java.corba@9.0.4

java.datatransfer@9.0.4

java.desktop@9.0.4

java.instrument@9.0.4

java.jnlp@9.0.4

java.logging@9.0.4

java.management@9.0.4

java.management.rmi@9.0.4

java.naming@9.0.4

java.prefs@9.0.4

java.rmi@9.0.4

java.scripting@9.0.4

java.se@9.0.4

java.se.ee@9.0.4

java.security.jgss@9.0.4

java.security.sasl@9.0.4

java.smartcardio@9.0.4

java.sql@9.0.4

java.sql.rowset@9.0.4

java.transaction@9.0.4

java.xml@9.0.4

java.xml.bind@9.0.4

java.xml.crypto@9.0.4

java.xml.ws@9.0.4

java.xml.ws.annotation@9.0.4

javafx.base@9.0.4

javafx.controls@9.0.4

javafx.deploy@9.0.4

javafx.fxml@9.0.4

javafx.graphics@9.0.4

javafx.media@9.0.4

javafx.swing@9.0.4

javafx.web@9.0.4

jdk.accessibility@9.0.4

jdk.attach@9.0.4

jdk.charsets@9.0.4

jdk.compiler@9.0.4

jdk.crypto.cryptoki@9.0.4

jdk.crypto.ec@9.0.4

jdk.crypto.mscapi@9.0.4

jdk.deploy@9.0.4

jdk.deploy.controlpanel@9.0.4

jdk.dynalink@9.0.4

jdk.editpad@9.0.4

jdk.hotspot.agent@9.0.4

jdk.httpserver@9.0.4

jdk.incubator.httpclient@9.0.4

jdk.internal.ed@9.0.4

jdk.internal.jvmstat@9.0.4

jdk.internal.le@9.0.4

jdk.internal.opt@9.0.4

jdk.internal.vm.ci@9.0.4

jdk.jartool@9.0.4

jdk.javadoc@9.0.4

jdk.javaws@9.0.4

jdk.jcmd@9.0.4

jdk.jconsole@9.0.4

jdk.jdeps@9.0.4

jdk.jdi@9.0.4

jdk.jdwp.agent@9.0.4

jdk.jfr@9.0.4

jdk.jlink@9.0.4

jdk.jshell@9.0.4

jdk.jsobject@9.0.4

jdk.jstatd@9.0.4

jdk.localedata@9.0.4

jdk.management@9.0.4

jdk.management.agent@9.0.4

jdk.management.cmm@9.0.4

jdk.management.jfr@9.0.4

jdk.management.resource@9.0.4

jdk.naming.dns@9.0.4

jdk.naming.rmi@9.0.4

jdk.net@9.0.4

jdk.pack@9.0.4

jdk.packager@9.0.4

jdk.packager.services@9.0.4

jdk.plugin@9.0.4

jdk.plugin.dom@9.0.4

jdk.plugin.server@9.0.4

jdk.policytool@9.0.4

jdk.rmic@9.0.4

jdk.scripting.nashorn@9.0.4

jdk.scripting.nashorn.shell@9.0.4

jdk.sctp@9.0.4

jdk.security.auth@9.0.4

jdk.security.jgss@9.0.4

jdk.snmp@9.0.4

jdk.unsupported@9.0.4

jdk.xml.bind@9.0.4

jdk.xml.dom@9.0.4

jdk.xml.ws@9.0.4

jdk.zipfs@9.0.4

oracle.desktop@9.0.4

oracle.net@9.0.4

com.jdojo.intro@1.0

标签: #javac 指定lib