最近需要把自己写的一个tcp的程序放在云端,但是,不熟悉linux系统。
遇到这个问题:
-bash: javac: command not found
百度之后,发现是因为我的java的path配置上有问题。但是我的java又可以正常运行,着实让我很疑惑的。看看我的path配置,是这样的:
export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH
修改后:
export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:/usr/java/jdk1.8.0_171/bin:/usr/java/jdk1.8.0_171/jre/bin:$PATH
的确没有这个java的配置信息,不禁感叹linux系统的强大啊。
source /etc/profile
刷新保存下修改。重启系统。
再进去,执行jar程序就行了
[root@thelinux java]# java -jar TCP.jar
IP:0.0.0.0/0.0.0.0 开始监听
但是目前,该窗口就不能关闭,不能做其他事,就不方便了。参考了其他前辈的博客,整理了下:
Linux在执行jar包,有几种方式:
// 1、就像我一开始用的 ,当前窗口锁定,按CTRL + C打断程序运行,或直接关闭窗口
java -jar TCP.jar
// 2、& 就表示当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行。
java -jar TCP.jar &
//3、意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行
nohup java -jar TCP.jar &
nohup java -jar TCP.jar >temp.txt & //将输在控制台的内容打印在temp.txt里面。
//4、但是,虽然程序依旧在执行,也是在后台执行,我如何确定他的执行状态呢?
jobs
查看当前后台程序的执行,会得到他们的执行id,当需要吧后台程序调到前台
fg id
然后,就没了吧。很感谢网上的大佬的博客。