gpt4 book ai didi

java - JavaExe下Windows服务启动失败: Updated

转载 作者:行者123 更新时间:2023-12-01 13:12:03 25 4
gpt4 key购买 nike

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

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

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

该服务有一个注册表项,其中包含以下内容:
名称:图像路径
类型:REG_EXPAND_SZ
数据:“\JavaExe\JavaExe\doc\examples\3 - Service\Example3.exe”__RunService__

如果我使用参数 __RunService__ 从命令行运行 Example3.exe,则 Java 进程会启动并在崩溃之前短暂运行。

这些示例在 JavaExe 下载中都是独立的,因此很难看出如何缺少库。

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

Windows 7 x64(但在 XP 上也会以同样的方式失败 [请参阅下面的更新])
Java版本1.7.0_45

--

更新:

开发人员回复了我的电子邮件,并表示 32 位和 64 位 Java 版本混淆了。
我把这个问题理顺了。示例 3 服务,从获取的 .exe 和 .jar 文件运行JavaExe .zip 下载(默认情况下均为 32 位),现在可以在 WinXP (x86) 上正确运行。

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

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

从 compilx64.bat 构建的 .jar 文件大部分与 x86 版本相同,但有一些包含大几个字节的 .class 文件。我认为代码必须引用 native 库?也许有些没有找到?但哪些呢?

当我输入 sc qc Example3 时,我得到:
类型::10 WIN32_OWN_PROCESS
START_TYPE:2 AUTO_START
ERROR_CONTROL:1正常
BINARY_PATH_NAME :“[...文件路径...]\JavaExe\JavaExe\doc\examples\3 - Service\Example3.exe” __RunService__
LOAD_ORDER_GROUP:0
DISPLAY_NAME:JavaExe:示例3
依赖项:事件日志
SERVICE_START_NAME:本地系统

最佳答案

答案:

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

要从网络驱动器运行 Windows 服务要么是不可能的,要么需要相当大的变形。例如,参见
Map a network drive to be used by a service

当我将所有内容移至本地 C: 驱动器时,它起作用了。

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

关于java - JavaExe下Windows服务启动失败: Updated,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22775248/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com