概述使用tomcat在spring启动时读取控制台input
在spring启动时embedded的tomcat才可以读取控制台input吗? 假定的应用程序stream程是从用户请求用户名和密码,并将用于启动应用程序。 它在使用java -jar命令时有效,问题是当我closures控制台(linux上的SSH)时,进程停止。 我试着search它,发现这个过程与控制台绑定,所以我尝试使用nohup ,问题是我不能请求控制台input使用时。 有没有其他的方法?
如何防止Maven的spring-boot插件将静态资源复制到目标?
在Docker容器中使用Java在类path中访问JsON文件时遇到fileNotFoundException(SprintBootApplication)
Spring Boot Application:没有findtypes返回值的转换器
在服务器启动后,Spring启动停止
我认为这可以帮助你。
public static voID main(String[] args) { Scanner scanner = new Scanner(system.in); // prompt for the user\’s name System.out.print(\”Enter your name: \”); // get their input as a String String username = scanner.next(); System.out.println(username); SpringApplication.run(Application.class,args); }
你可以使用nohup来启动带有参数的罐子,它们只是不会在终端的新行中被提示。 用户可以在启动jar时将它们添加为参数。 见下面的细节。
例:
主要类
public static voID main(String[] args) { String username = args[0]; String password = args[1]; if(username.equals(\”admin\”) && password.equals(\”password\”)) { SpringApplication.run(NohupApplication.class,args); } else { System.out.println(\”You are not authorized to start this application.\”); } }
凭证无效
命令
nohup java -jar example.jar user password
的nohup.out
You are not authorized to start this application.
凭借有效凭证
命令
nohup java -jar example.jar admin password
的nohup.out
. ____ _ __ _ _ /\\ / ___\’_ __ _ _(_)_ __ __ _ ( ( )___ | \’_ | \’_| | \’_ / _` | \\/ ___)| |_)| | | | | || (_| | ) ) ) ) \’ |____| .__|_| |_|_| |___,| / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v1.5.2.RELEASE)
在执行你的java程序之前,在shell脚本中获取用户名和密码,并将它们作为参数传递给你的应用程序
#!/bin/bash # Ask login details read -p \’user: \’ uservar read -sp \’password: \’ passvar echo
现在你有用户名和密码,你可以用nohup运行java命令,并把用户密码作为jvm属性。 您也可以按照其他答案中的建议,将用户名和密码作为程序参数传递。
像nohup java -jar abc.jar -Duser=$user -Dpassword=$password
并使用获取这些属性
String user = System.getProperty(\”String\”); String password = System.getProperty(\”password\”);
如果你想用记录器+ System.out.println()输出等控制台输入完整记录,那么你必须使用
nohup java -jar yourJarfile.jar admin password >> fulllogoutput.log &
另一个问题:
问题是当我关闭控制台(linux上的SSH)的过程中停止。
所以你想运行你的jar文件作为后台进程。 您不能停止您的控制台关闭。 完整命令后加上符号,不会停止。 您可以使用以下命令。
nohup java -jar yourJarfile.jar &
用于完整记录控制台输出
nohup java -jar yourJarfile.jar >> fulllogoutput.log &
&符号用于在后台运行程序。
nohup实用程序使命令作为参数在后台运行,即使在注销后也是如此。
停止/终止后端进程:
要停止后台进程,请使用ps -aux来获取ID,然后kill(ID号)
ps -aux | grep yourJarfile.jar
你会得到身份z号码。 杀了那个
sudo kill -9 <pID>
资源链接: https : //stackoverflow.com/a/12108646/2293534
总结
以上是内存溢出为你收集整理的使用tomcat在spring启动时读取控制台input全部内容,希望文章能够帮你解决使用tomcat在spring启动时读取控制台input所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
请登录后查看评论内容