首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在JavaExe下启动Windows服务失败:已更新

在JavaExe下启动Windows服务失败:已更新
EN

Stack Overflow用户
提问于 2014-04-01 09:34:25
回答 1查看 253关注 0票数 0

有没有人在用JavaExe运行Windows服务时遇到了问题,有解决方案吗?

除了服务示例、Example3、Example5和Example23之外,所有JavaExe示例都可以正常工作。在每种情况下,都会创建Windows服务,但任何启动该服务的尝试都会带来弹出错误消息:

“系统找不到指定的文件。”

该服务有一个注册表条目,其中包含以下内容:

姓名: ImagePath

类型: REG_EXPAND_SZ

数据:"\JavaExe\JavaExe\doc\examples\3 -服务\Example3.exe“__RunService__

如果我从带有参数__RunService__的命令行运行Example3.exe,那么在崩溃之前会启动并短暂运行一个Java进程。

这些示例在JavaExe下载中都是自包含的,所以很难理解为什么会有缺失库。

背景: JavaExe (http://devwizard.free.fr/html/en/JavaExe.html)似乎实现了一种合理的方法,允许从作为服务运行的另一个Java程序调用Java应用程序。http://msdn.microsoft.com/en-us/library/windows/desktop/ms683502(v=vs.85).aspx阻止服务访问桌面,因此JavaExe在服务和应用程序Java程序之间建立了套接字连接,每个程序都作为用户进程运行,如下所示: Windows

Windows 7 x64 (但它在XP上也以同样的方式失败,请参阅下面的更新)

Java版本1.7.0_45

--

更新:

开发人员回复了我的电子邮件,告诉我32位和64位Java版本被混淆了。

我把这事搞清楚了。Example3服务从从JavaExe .zip下载获得的.exe和.jar文件(默认情况下都是32位)运行,现在可以在WinXP (x86)上正确运行。

对于x64计算机,需要使用包的编译x64.bat脚本重新编译jar文件。(并使用文档中所述的JaveExe.exe的x64版本。)

我做了这些事情,但Example3服务仍然无法启动,并显示错误“系统无法找到指定的文件”。

从编译x64.bat构建的.jar文件与x86版本基本相同,但也有一些包含的.class文件要大几个字节。因此,我假设代码必须引用本机库?也许有些是没有找到的?但是是哪几个呢?

当我输入sc qc Example3时,我得到:

类型::10 WIN32_OWN_PROCESS

START_TYPE: 2个AUTO_START

ERROR_CONTROL: 1正常

服务:"...filepath...\JavaExe\JavaExe\doc\examples\3 - BINARY_PATH_NAME \示例3.exe“__RunService__

LOAD_ORDER_GROUP: 0

DISPLAY_NAME: JavaExe : Example3

依赖项:事件日志

SERVICE_START_NAME: LocalSystem

EN

回答 1

Stack Overflow用户

发布于 2014-04-02 07:00:07

答案:

Example3.exe的文件路径位于网络驱动器上。

要让Windows服务从网络驱动器运行,要么是不可能的,要么需要相当大的改动。例如,请参见

Map a network drive to be used by a service

当我把所有东西都移到本地的C:驱动器上时,它起作用了。

感谢bb67提供的提示,帮助我们解决了这个问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22775248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档