用户注销时,javaw.exe被关闭

江东闲客 2008-04-23 11:38:49
因为需求,我把print.jar做成了print.exe,并由这个exe创建了一个服务(PrintService),
以便每次登录系统都能自动运行,同时也方便了用户手动停止或者启动该exe。
这样当PrintService启动后,任务管理器中会同时存在这两个线程:print.exe javaw.exe
现在的问题是,当注销用户(LogOff)后,再登录(LogIn)时,print.exe虽然还留着,但是javaw.exe已经被关闭了,
这样PrintServices就不好用了。

查了半天,也不知道如何解决,只好在这里求救了。
在线等。。
...全文
340 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
andymoller 2009-01-27
  • 打赏
  • 举报
回复
文件网(http://www.wenjian.cn)上说javaw.exe 是存放在 "C:\Program Files" 下的子目录 - 一般是 C:\WINDOWS\system32\ 或 C:\Program Files\Java\jre1.5.0_02\bin\。
贝壳鱼 2008-04-24
  • 打赏
  • 举报
回复
不错,收藏了。。。。。
江东闲客 2008-04-23
  • 打赏
  • 举报
回复
to k7sem:
>要不写个监测程序,当javaw.exe被kill的时候, 从新启动一下?
我也这么想过,再做一个Service来监听,一旦javaw全部被kill时再重起一下上面的PrintService.
这是最后的手段,万不得已的时候再这么做吧。

刚才看了一下service的type和start等属性的配置,觉得从配置Service的配置上下手不可行。
不知道注销时Window关闭程序有什么样的判断标准,是否可以设置javaw的相关属性来控制?
goodmrning 2008-04-23
  • 打赏
  • 举报
回复
学习了
pangxie 2008-04-23
  • 打赏
  • 举报
回复
建议你到jre的目录中,查看一下有没有错误日志文件,我感觉可能是由于当前jre版本有个Bug自动退出的,莫名其妙的关闭java程序我遇到过。
贝壳鱼 2008-04-23
  • 打赏
  • 举报
回复
要不写个监测程序,当javaw.exe被kill的时候, 从新启动一下?
江东闲客 2008-04-23
  • 打赏
  • 举报
回复
再等一个点。。。
江东闲客 2008-04-23
  • 打赏
  • 举报
回复
急。。。
江东闲客 2008-04-23
  • 打赏
  • 举报
回复
to 楼上的哥们,注销后除了service和关键进程,其他的像application之类的进程会被系统自动关闭的。
比如开着一个applet程序后然后切换到别的用户,这个applet程序肯定不会继续运行了。

加班到现在,问题终于解决,松口气了。。

先用JNI调用JVM.dll来启动jvm,设置好jvm参数。(设定的参数和配置tomcat5w.exe服务的jab标签一样)
然后查找位于jar中要运行的Class的main函数并调用。

另)突然发现,tomcat5w.exe不仅可以自己设置启动停止class,mathod,还有arguments和mode。。。
如果它能够由用户设置服务名称,那将会是一个非常好用的服务添加工具,而我也用不着花了一整天的时间来jni了。
不过刚才看了 不是一个人 的blog: [又一个将tomcat服务做成windows服务的方法]
http://kfan.blog.hexun.com/16485640_d.html
他通过修改bat文件可以自己设置服务名称,也是个好办法(群众的力量是伟大的)
我现在用的Tomcat5.5,没有bat文件,只有一个只能改配置参数不能改服务名的tomcat5w.exe,想要bat文件,得找5.5以前的的版本啦。
song_ice 2008-04-23
  • 打赏
  • 举报
回复
环境变量引起 ?看下注销后系统变量、用户变量
haoxiongok 2008-04-23
  • 打赏
  • 举报
回复
我帮楼主顶一下
hmsuccess 2008-04-23
  • 打赏
  • 举报
回复
因为需求,我把print.jar做成了print.exe,并由这个exe创建了一个服务(PrintService),
这个进程可能是由于你的服务的原因,
江东闲客 2008-04-23
  • 打赏
  • 举报
回复
> print.exe执行完了,javaw.exe就关闭。你要不能启动Tomcat来维持javaw.exe的执行?

如果print.exe能"执行完",那还要service干嘛~~
print.exe加入了对读卡器的监听处理,如果不给它发送"-stop"命令,它是不会执行完的。
另外,tomcat服务运行的时候,javaw.exe并没有被启动。
tomcat用的是jvm,我也在试着把print.exe改成基于jvm的。
panxuan 2008-04-23
  • 打赏
  • 举报
回复
print.exe执行完了,javaw.exe就关闭。你要不能启动Tomcat来维持javaw.exe的执行?

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧