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