用 Java 编写脚本 - Sip of Java

对 JDK 和一些长期存在的 API 的最新更改使 Java 成为编写小型实用程序应用程序的更实用选择。这可以使 Java 开发人员受益,他们可能不太熟悉脚本语言或更喜欢使用一致的编程语言。我们来看看如何使用 Java 编写脚本。

单文件源代码应用程序

JDK 11 中引入的 JEP 330 是对 java 启动器的更新,它允许直接启动单文件源代码应用程序。开发人员不再需要使用 javac 在运行应用程序之前编译代码,因为 java 启动器会在后台编译源代码并启动应用程序。 java 启动器还可以透明地处理具有多个类的源文件。这改善了使用 Java 编写的实用程序应用程序的编写和使用体验。

public static void HelloWorld {
	public static void main(String.. args){
		System.out.println("Hello World!");
	}
}

命令

$ java HelloWorld.java

输出

Hello World

Shebang 文件

JEP 330 还增加了将单文件源代码应用程序配置为 shebang 文件的功能。这需要删除 .java 文件扩展名,并在文件顶部添加 shebang #!、Java 安装路径和源版本

#! /path/to/java/install  --source version

交互式输入

与任何 Java 应用程序一样,可以在启动时将值传递到实用程序应用程序。这对于许多应用程序来说可能就足够了,但如果需要或希望获得交互式命令行体验,则 java.io.Console 类为此提供了一些有用的 API

用户输入

String readLine() - 读取用户输入 String readLine(String, Object...) - 打印格式化消息,读取用户输入 String readPassword() - 读取用户输入,禁用回显 String readPassword(String, Object...) - 打印格式化消息,读取用户输入,禁用回显

输出

printf(String, Object ...) - 打印格式化消息 format(String, Object ...) - 打印格式化消息

文件 I/O

脚本通常需要与文件系统交互;搜索和更新文件、生成文件结构、删除文件等;为此,java.io 包提供了许多用于读写的选项。可在 java.io 包的 JavaDoc 中找到可用类的完整列表。

改进的 I/O API

java.io 包自 1.0 起就已成为 JDK 的一部分。也许毫不奇怪,此包中的一些类和 API 可能显示出其年代感,并且并不总是能提供出色的开发者体验。在遍历文件系统或执行创建目录等某些任务时,可以考虑 java.nio.file 包中的一些类

  • Path - 可用于在文件系统中查找文件的一个对象。

  • Paths - 此类完全由静态方法组成,这些方法通过转换路径字符串或 URI 来返回 Path。

  • Files - 此类完全由静态方法组成,这些方法对文件、目录或其他类型的文件进行操作。

其他读物

编码愉快!