在shell脚本中调用Java应用程序时,可以通过以下几种方式为其提供用户输入:
java MyApp $username
在Java程序中,可以通过args
参数获取命令行参数的值,如下所示:
public static void main(String[] args) {
String username = args[0];
// 进行相应的处理
}
read
命令从标准输入流中读取用户输入的值,并将其传递给Java应用程序。在shell脚本中,可以使用read
命令读取用户输入的值,并将其保存到一个变量中,然后在调用Java应用程序时,将该变量作为参数传递给Java程序。例如,假设Java应用程序需要接收一个密码作为输入,可以在shell脚本中使用read
命令读取密码,并将其传递给Java程序,如下所示:
read -s password
java MyApp $password
在Java程序中,可以通过System.in
流来获取标准输入流的值,如下所示:
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String password = scanner.nextLine();
// 进行相应的处理
}
export
命令将用户输入的值保存到一个环境变量中,然后在调用Java应用程序时,Java程序可以通过System.getenv()
方法获取环境变量的值。例如,假设Java应用程序需要接收一个邮箱地址作为输入,可以在shell脚本中使用export
命令将邮箱地址保存到一个环境变量中,并在调用Java程序时,Java程序可以通过System.getenv("EMAIL")
获取该环境变量的值,如下所示:
export EMAIL=$email
java MyApp
在Java程序中,可以通过System.getenv()
方法获取环境变量的值,如下所示:
public static void main(String[] args) {
String email = System.getenv("EMAIL");
// 进行相应的处理
}
以上是为在shell脚本中调用的Java应用程序提供用户输入的几种方式。具体使用哪种方式取决于具体的需求和场景。
Elastic 中国开发者大会
云+社区技术沙龙[第9期]
云+社区开发者大会 长沙站
北极星训练营
云+社区技术沙龙[第2期]
云+社区开发者大会(苏州站)
云+社区技术沙龙[第17期]
云+社区技术沙龙[第14期]
领取专属 10元无门槛券
手把手带您无忧上云