需求 :
1、需要自动打印这要调用客户电脑上的打印机 但程序是web 网页程序
2、调用 地磅串口获取 地磅的值
解决方案 : 因为这两功能使用者少 所以实施时去客户的电脑提前安装本地的java服务
这里我就写了一个java 小程序去调用本地的打印机 和 地磅串口程序 提供给 网页程序调用本地的接口
问题: 1、tomcat 启动时会弹一个框打印日志 要运行在客户的电脑上还是不太方便
2、读串口时程序有时会卡死 ,一直返回同一个值 测试发现重启tomcat后又能获取值了
第一个问题将 tomcat 注册成服务 这样tomcat就不会弹执行窗口了,
第二个问题 写一个批处理文件重启 tomcat 提供接口给网页程序调用,出现获取不到地磅值时客户只需点击按钮即可重启
开始将tomcat注册成服务
cmd,命令:进入到Tomcat的bin目录 这里 tomcat8 是指定的服务名称
service.bat install tomcat8
卸载 命令:
service.bat remove
重启tomcat 这里是编辑了一个 bat 文件
net stop tomcat-8
net start tomcat-8
但是发现关闭 tomcat后 并不会重启 执行了第一条命令后就停止了 猜测:用服务的方式启动时 window会开一个独立的进程 然后java执行 cmd 命令行 去关闭tomcat服务时
其下的线程也被强制关闭了,window底层不熟所以没法测试(希望知道的大佬留言告知一下)
最后换了一种方式直接去隐藏tomcat的框
找到TOMCAT 的 bin目录下的文件 \bin\setclasspath.bat
搜索
set _RUNJAVA="%JRE_HOME%\bin\java"
改为
set _RUNJAVA="%JRE_HOME%\bin\javaw"
保存后重新启动tomcat即可以在不出现日志弹框的情况下运行
因为改成不是服务启动所以bat 文件也修改为:
cd D:\java\apache-tomcat-8.0.9\bin
call shutdown.bat >nul 2>nul
call startup.bat
路径需要大家自己修改成对应路径
至此问题总算比较圆满的解决了。