创建Fat Jars:什么是mods文件夹?

时间:2019-03-22 12:44:00

标签: javafx javafx-11

我就在:

  

https://openjfx.io/openjfx-docs/#modular

试图创建一个jar,我可以在其他系统上运行(这些系统不具有非开发者外行用户会遇到的javafx库),他们已经告诉我使用它:

dir /s /b src\*.java > sources.txt & javac --module-path %PATH_TO_FX% -d mods/hellofx @sources.txt & del sources.txt

什么是mods / 那应该在哪里?他们是在谈论/吗?

1 个答案:

答案 0 :(得分:1)

您链接的文档引用了此sample

如果您克隆示例,并按照有关如何编译和运行项目的说明进行操作,则第一个命令可以分为三个部分:

dir /s /b src\*.java > sources.txt & \
javac --module-path %PATH_TO_FX% -d mods/hellofx @sources.txt & \
del sources.txt

第一部分只是获取src路径中的所有Java文件,并将其添加到sources.txt文件中:

C:\path\to\hellofx\src\module-info.java
C:\path\to\hellofx\src\hellofx\HelloFX.java

第二部分调用javac命令(请参阅reference)来编译sources.txt的内容,添加所需的--module-path选项以包括JavaFX模块,以及添加输出或目的地 -d选项:

  

-d目录

     

设置类文件的目标目录。如果类是包的一部分,则javac会将类文件放在反映包名称的子目录中,并根据需要创建目录。

这意味着我们将hellofx.HelloFX.java编译到目录mods/hellofx中,结果是:

C:\path\to\hellofx\mods\hellofx\module-info.class
C:\path\to\hellofx\mods\hellofx\hellofx\HelloFX.class

第三步将只删除sources.txt文件。

现在您可以运行模块了:

java --module-path "%PATH_TO_FX%;mods" -m hellofx/hellofx.HelloFX

当然,您可以为输出指定任何目录,因此可以将其更改为outbuild,但是请确保在其余说明中进行相应的修改。