2024-05-31 04:57:50 | 我爱编程网
这种情况,一般采用阻塞式方法来实现的。
java中有很多方法都属于阻塞式方法,比如InputStream中的read()、readLine()方法和线程中sleep()方法以及DatagramSocket的receive 等。
这里可调用线程的特有方法sleep 和start()来实现
static void sleep(long millis) 在指定的毫秒数内让当前正在执行的线程休眠(暂停执行),此操作受到系统计时器和调度程序精度和准确性的影响。我爱编程网
参考api编程就可以了
通常情况下,在cmd运行java程序后,如果关闭cmd窗口,java程序也会随之关闭。\x0d\x0a如果你编写的是命令行交互的程序,这当然没问题。如果是GUI程序,这时如果关闭cmd窗口(也许你是觉得它影响美观),很糟糕,GUI界面也随之消失了。\x0d\x0a如何才能关闭cmd而不关闭java gui界面呢?答案是:javaw 。在java安装目录下,除了有java.exe供我们运行编译好的class文件外,还有一个javaw.exe文件,这个命令就可以实现我们的目的。\x0d\x0a如果你平时是这样运行java程序的:java Test,这时只需要稍稍更改下:javaw Test即可。等GUI出来以后,关闭cmd窗口即可。\x0d\x0a另外还有一个方法,就是把你所有的class文件打包成jar文件,双击即可运行,也就不需要打开cmd了。
Linux运行和停止jar包的方法
1 背景
Java项目开发完毕打好jar包,就需要把该jar包上传到Linux上去运行,如果老哥使用Windows当我没说⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄。
我们想到的可能就是通过 java -jar platform-scm-v108.jar 的方式来运行jar包,程序运行正常,但是运行期间窗口被锁定。当我们关闭窗口或Ctrl + C打断程序运行时,程序就会退出;停止时会先通过 ps -ef | grep platform-scm-v108.jar 找出jar包的进程,然后再kill掉。这样太繁琐了,下面就根据线上经验总结下jar优雅启动、停止的步骤:
2 Linux启动jar包的方式
2.1 简单后台启动
java -jar platform-scm-v108.jar --spring.profiles.active=product --server.port=8080 &
说明:& 表示后台运行,ssh窗口不被锁定,但是关闭窗口时,程序还是会退出;
2.2 不挂断后台启动
nohup java -jar platform-scm-v108.jar --spring.profiles.active=product --server.port=8080 &
说明:nohup 表示不挂断运行命令行,当账号退出或关闭终端时,程序仍然运行,当用 nohup 命令执行作业时,该作业的所有输出被重定向到nohup.out的文件中,除非另外指定了输出文件。
2.3 不挂断后台启动并重定向日志
nohup java -jar platform-scm-v108.jar --spring.profiles.active=product --server.port=8080 >/data/platform/log/platform-scm.txt &
说明:> /data/platform/log/platform-scm.txt platform-scm.txt文件中
3 停止jar包
3.1 简单两步走
ps -ef | grep platform-scm-v108.jar
# 找到对应的进程然后杀掉
kill -9 进程号
说明 :分两步,操作繁琐;
3.2 一条指令停止法
kill -9 `ps -ef | grep platform-scm-v108.jar | grep -v 'grep' `
说明:两次使用管道,排除其他进程,直接杀掉相应的进程。
4 线上环境脚本参考
4.1 启动脚本
nohup java -jar platform-scm-v108.jar --spring.profiles.active=product --server.port=8080 &
4.2 停止脚本
kill -9 `ps -ef | grep platform-scm-v108.jar | grep -v 'grep' `
4.3 重启脚本
kill -9 `ps -ef | grep platform-scm-v108.jar | grep -v 'grep' `
sleep 2
nohup java -jar platform-scm-v108.jar --spring.profiles.active=product --server.port=8080 &
sleep 2
tail -f nohup.out
python延时函数python延时函数是什么?一起来看看吧!python延时函数即pythontimesleep()函数,推迟调用线程的运行,可通过参数secs指秒数,表示进程挂起的时间。该函数没有返回值,sleep()方法语法:time.sleep(t),t表示推迟执行的秒数。函数接收一个指定函数fn,一个延迟时间ms和指定函数的参数*args,在指定延迟后,返回指定函数fn
java如何调用c语言源文件并进行执行?要在java中调用c语言的库,需要使用Java提供了JNI。\x0d\x0a举例说明\x0d\x0a在c语言中定义一个voidsayHello()函数(打印HelloWorld);然后在Java中调用这个函数显示HelloWord.\x0d\x0a现在分别从Java和C语言两部分说明:\x0d\x0a1.Java部分\x0d\x0a首先定义一个Hell
sh脚本如何自动执行java程序,并且该脚本如何被定期调用?各位好我有一个问题,是这样: 环境:有一套管理系统(包括联机和批量),该管理系统白天运行联机系统,晚上运行批量系统。 目的:联机系统运行到晚上,会停掉,这时候通过在unix下的sh脚本调用并且启动批量系统。 sh脚本可以调用java程序,通过java程序就可以启动了批量系统。 andilyliao写道最简单的方法你可以用java写一
如何在cmd下执行java程序?谢谢如图新建一个hello.java文件,写上你的代码。2.在文件的目录下打开cmd,输入命令javachello.java3.编译成功会生成hello.class文件4.运行编译好的文件,输入命令javachello(不需要文件后缀)。拓展:Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里
如何用Cmd命令行编译Java代码程序在初学Java的时候,会使用cmd命令的模式来编译运行代码,下面就来介绍下如何命令行编译1、打开一份Java代码,如下图2、打开文件所在的位置,鼠标右键,打开shell3、输入命令javacHelloWorld.java,回车,出现下图所示编译后的class文件4、输入命令java-cp.HelloWorld,回车,输出结果如何使用C
Java打包成windows服务后执行cmd命令失效的原因是什么?Java打包成windows服务后执行cmd命令失效的原因可能有很多,比如权限问题、环境变量问题等等。您可以尝试以下方法解决这个问题:1.检查您的程序是否有权限执行cmd命令。如果没有,请尝试以管理员身份运行程序。2.检查您的程序是否设置了正确的环境变量。如果没有,请设置正确的环境变量。3.检查您的程序是否使
编译和执行一个java程序使用的命令分别是???javacxxx.java(这是编译命令,在cmd中)javaxxx(不带java后缀,这是运行,一定先编译才行)另外这两个命令的使用必须是你编译运行的文件在当前打开的目录中比如你现在在cmd中打开到桌面文件夹那么你的java源代码一定得在桌面上java中如何调用用于运行java程序的cmd命令啊Runtim
java显示不是内部或外部命令,也不是可运行程序原因:这是因为安装java时把jdk的路径和jre的路径选择成一样,就造成覆盖了,这时候你在lib下也找不都tools.jar和dt.jar.解决:如果只需要使用javac命令其实不需要这么复杂的,可以直接把新建的JAVA_HOME、CLASSPATH这两个变量和PATH变量中的JAVA_HOME%\bin;%JAVA_HOME%
2024-04-13 00:38:12
2024-03-31 15:14:06
2024-03-21 00:22:13
2024-02-10 22:15:59
2023-12-26 22:10:45
2023-10-06 13:00:52