运行 shebang 脚本
从版本 11 开始,Java 提供了一种方式来运行自包含脚本,而无需编译它们 (https://openjdk.java.net/jeps/330)。 此外,在 Linux 和 macOS 上,您可以通过在文件的第一行指定 JDK 来用 Java 创建脚本。
这称为 shebang 机制。 Java 中的 shebang 支持在您需要编写可执行脚本但不想安装编译器或使用像 bash 这样的脚本语言时非常有用。
编写脚本
创建一个没有
.java扩展名的文件。第一行以
#!开头,后跟将用于运行脚本的 JDK 路径。 使用source来指定脚本的语言级别。 需要语言级别 11+。示例:
#!/usr/lib/jvm/openjdk-14.0.1/bin/java --source 11编写脚本的主体。 脚本可以包含多个类并使用来自标准库的导入。 必须在第一声明类中定义为
public static void main(String[] args)。下面是一个有效的 shebang 脚本示例:
#!/usr/lib/jvm/openjdk-14.0.1/bin/java --source 11 import java.util.Locale; class Hello { public static void main(String[] args) { String lang = Locale.getDefault().getLanguage(); System.out.println(Greetings.getGreeting(lang)); } } class Greetings { static String getGreeting(String lang) { switch (lang) { case "fr": return "Bonjour"; case "es": return "Hola"; case "zh": return "Nǐn hǎo"; case "de": return "Guten Tag"; case "pl": return "Dzień dobry"; case "el": return "Yassas"; case "sv": return "God dag"; default: return "Hi"; } } }确保脚本文件可使用
chmod +x命令执行。
运行脚本
调试脚本
为脚本 创建运行/调试配置,并 添加加载调试代理的虚拟机选项。
使用 附加到进程的 远程 JVM 调试 运行/调试配置。
最后修改日期: 2025年 9月 22日
