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了。
我爱编程网(https://www.52biancheng.com)小编还为大家带来ideajar包一键上传如何停止原来jar包的相关内容。
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
PHP中的常见风险函数PHP风险函数代码执行在PHP中,eval()函数能将字符串作为PHP代码执行,但其非标准函数且易被滥用,存在安全风险。进阶使用时,可以执行多条命令,如eval()嵌套eval()。特殊输入如结束命令?>或使用ascii码或base64编码绕过过滤机制,实现潜在攻击。验证函数assert()assert()函数同样执行字符串作为PHP代码,但其为
如何用Cmd命令行编译Java代码程序在初学Java的时候,会使用cmd命令的模式来编译运行代码,下面就来介绍下如何命令行编译1、打开一份Java代码,如下图2、打开文件所在的位置,鼠标右键,打开shell3、输入命令javacHelloWorld.java,回车,出现下图所示编译后的class文件4、输入命令java-cp.HelloWorld,回车,输出结果如何使用C
如何在cmd下执行java程序?谢谢如图新建一个hello.java文件,写上你的代码。2.在文件的目录下打开cmd,输入命令javachello.java3.编译成功会生成hello.class文件4.运行编译好的文件,输入命令javachello(不需要文件后缀)。拓展:Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里
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
编译和执行一个java程序使用的命令分别是???javacxxx.java(这是编译命令,在cmd中)javaxxx(不带java后缀,这是运行,一定先编译才行)另外这两个命令的使用必须是你编译运行的文件在当前打开的目录中比如你现在在cmd中打开到桌面文件夹那么你的java源代码一定得在桌面上java中如何调用用于运行java程序的cmd命令啊Runtim
php截取字符串函数PHP中,字符串截取是非常常见的操作。通过使用substr函数,我们可以按照指定位置或长度获取字符串的一部分。以下是一些示例:首先,substr函数用于从指定位置开始取字符,如从字符串"ABCDEFGHIJKLMNOPQRSTUVWXYZ"的第5个字符开始取,直到字符串结束,结果为"BZYX"。接着,可以指定截取的长度,如从第9个字符开始取4个字符,得到"DE
Java打包成windows服务后执行cmd命令失效的原因是什么?Java打包成windows服务后执行cmd命令失效的原因可能有很多,比如权限问题、环境变量问题等等。您可以尝试以下方法解决这个问题:1.检查您的程序是否有权限执行cmd命令。如果没有,请尝试以管理员身份运行程序。2.检查您的程序是否设置了正确的环境变量。如果没有,请设置正确的环境变量。3.检查您的程序是否使
sh脚本如何自动执行java程序,并且该脚本如何被定期调用?各位好我有一个问题,是这样: 环境:有一套管理系统(包括联机和批量),该管理系统白天运行联机系统,晚上运行批量系统。 目的:联机系统运行到晚上,会停掉,这时候通过在unix下的sh脚本调用并且启动批量系统。 sh脚本可以调用java程序,通过java程序就可以启动了批量系统。 andilyliao写道最简单的方法你可以用java写一
2025-02-01 20:24:39
2025-02-12 03:21:37
2025-02-10 15:19:48
2025-01-28 17:58:32
2024-11-22 05:08:01
2024-09-10 08:50:00