我编写了一些 Java 实用程序,与 Java 11 支持的 shebang 线一起使用。它们在我的 Mac 上运行良好,但我现在需要在 Windows 上使用它们,而 Windows 不支持 shebang 线,有没有办法这样做?
虽然 Windows 不支持 shebang 行,但 Java 运行时仍将运行符合 shebang 行 java 类限制的 java 源文件。 (这基本上意味着它必须包含在单个源文件中,并且不能调用任何外部库。标准 Java 库仍然有效。)
这是我为我编写的名为
UuidGen.java
的课程所做的:
首先,我注释掉了 Shebang 行,因为它没有被使用。
其次,我创建了一个名为 uuid.bat 的批处理文件:
@echo off
java %~db0\UuidGen.java %*
第三,我将此文件放在与 UuidGen.java 文件相同的目录中。
第四,我把这个目录放在系统路径下。
现在,要运行它,我所需要做的就是输入 uuid。
路径中的
%~db0
被正在执行的 .bat 文件的路径替换。最后的%*
将.bat命令的所有参数传递给java命令。
(如果有人能想出一种更干净的方法来做到这一点,我很乐意看到它。)