• window执行jar包会出现假死现象解决


    windows jar包启动的几种方式介绍

    1. java -jar xxx.jar(jar包的路径),最普通简单的方式,通过windows的命令行窗口启动,并在命令行窗口运行,输出。可以在启动的时候增加参数指定启动的端口(server.port=8080)或者指定环境等
    2. start /min java -server -Xms1024m -Xmx20480m -jar xxx.jar;重新启动一个窗口去运行jar包,不依赖当前黑窗口,该方法是重新启动一个专门的java窗口去运行jar包,可以设置jvm的参数,有很多博客介绍说这个是jar包后台运行,其实不是,只是不像第一条一样依赖当前的命令行窗口,但是会依赖另外一个新开的java运行窗口,都是窗口关闭就停止了。
    3. start /b java -server -Xms1024m -Xmx20480m -jar xxx.jar;类似第一种启动方式,也是在当前窗口输出启动信息,在当前窗口运行,依赖当前命令行窗口,只不过可以指定jvm的参数。
    4. javaw -jar XXX.jar;javaw也是启动jar包的一种命令,我只在windows上使用过,javaw.exe是相似的和java.exe 是一个win32的GUI应用,应用提供自己的GUI窗口,不启用控制台。这个命令可以使jar包后台启动,输入命令后当前窗口完成,会在后台启动一个javaw进程,如果你的程序不是界面图形化程序,就只会跑在后台。
    5. Jar 添加为windows service 服务
    service.bat 
    
    %1 mshta vbscript:CreateObject("WScript.Shell").Run("%~s0 ::",0,FALSE(window.close)&&exit java -sever_name -jar D:start123.jar
    
    # %1 mshta vbscript:CreateObject(“WScript.Shell”).Run(“%~s0 ::”,0,FALSE)(window.close)&&exit 隐藏cmd的运行窗口。

           6.jar包Linux后台不挂断启动方式,并指定输出日志文件:nohup java -jar xxx.jar > log.txt &,输入此命令后可能会有询问error日志的输出地方,可以再次输入指定输出的日志文件即可

    jar包的停止

    以上启动方式,1,2,3,都可以通过ctrl+c或关闭当前窗口停止,4,5,需要后台查找该程序的进程,通过杀掉进程方式停止

    window运行jar包假死现象

    1.现象描述

    使用java -jar xxx.jar,打包成jar之后部署在windows上之后,运行一段时间项目就假死一样,这个状态下程序是访问不了的,需要到命令行容器随意敲一个键,总之光标移动了就行,然后卡住的内容就会迅速输出到窗口,不敲任何键程序就一直卡在那

    2.根因分析

    cmd默认开启了“快速编辑模式”,只要当鼠标点击cmd任何区域时,就自动进入了编辑模式,之后的程序向控制台输入内容甚至后台的程序都会被阻塞。

    我们在控制台里面回车或者右键鼠标后,自动退出了编辑模式。因此,控制又恢复输出内容,服务端又正常了。

    3.解决

    1.点击属性

     2.修复

  • 相关阅读:
    用python实现批量替换.doc文件文件内容
    记我是如何通过Security+考试的
    去哪儿笔试羊生羊问题
    CSS作用域问题
    常用的几种清除浮动的方式
    ECE转专业找工作经历-从零电面到facebook offer
    面经-Bloomberg
    题解-Linked List Cycle II
    自我介绍
    解题技巧-发现子结构
  • 原文地址:https://www.cnblogs.com/zhulibin2012/p/13856690.html
Copyright © 2020-2023  润新知