如何在Java中永远运行程序? System.in.read()是唯一的方法吗?
发布时间:2020-05-24 23:44:11 所属栏目:Java 来源:互联网
导读:我拿了 this code: 28 public static void main(String[] args) throws IOException { 29 HttpServer httpServer = startServer(); 30 System.out.println(String.format(Jersey app started wi
|
我拿了 this code: 28 public static void main(String[] args) throws IOException {
29 HttpServer httpServer = startServer();
30 System.out.println(String.format("Jersey app started with WADL available at "
31 + "%sapplication.wadlnTry out %shelloworldnHit enter to stop it...",32 BASE_URI,BASE_URI));
33 System.in.read();
34 httpServer.stop();
35 }
第33行“System.in.read()”是否意味着它会阻塞直到有输入?使用UNIX rc脚本启动Java应用程序时这是否也有效 – 不是从命令行手动启动的? 我想编写一个Java应用程序来监听HTTP连接.系统引导时将自动启动应用程序(使用UNIX rc脚本).这意味着应用程序将持续运行 – 理论上永远,直到有目的地停止.在Java main()方法中实现它的最佳方法是什么? 解决方法在Java中保留main方法不会自动结束程序.如果不再运行非守护程序线程,则存在JVM.默认情况下,唯一的非守护程序线程是主线程,它在您离开main方法时结束,因此停止JVM. 因此要么不结束主线程(不要让main方法返回),要么创建一个永不返回的新非守护进程线程(至少在你希望JVM结束之前). 由于该规则实际上非常合理,因此通常有一个完美的候选者可以使用这样的线程.对于HTTP服务器,例如,它可以是实际接受连接的线程,并将它们移交给其他线程以进行进一步处理.只要该代码正在运行,JVM将继续运行,即使main方法早已完成运行. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Java Swing:Jtable ArrayIndexOutOfBoundsException
- 多线程C程序在OS X比Linux慢得多
- spring security国际化及UserCache的配置和使用
- Java Generator for Poisson and Uniform Distributions?
- Java阻塞的线程是否占用更多的CPU资源?
- 在后端运行java程序
- IntStream Java的出现次数
- java-ee – 在maven-embedded-glassfish-plugin上的CDI注入
- JAVA获取HTTP请求头的方法示例
- Java实现读取键盘输入保存到txt文件,再统计并输出每个单词出
