我用 Java 编写了一个 chrome 应用程序和一个本机消息传递主机。该组合在 linux 上运行良好。但是,当我尝试将组合移植到 Windows 时,无法建立通信。包含主机的 jar 与 linux 变体完全相同。我正在使用以下脚本 (start.bat) 来启动 Java 主机:
@echo off
java -jar "%~dp0theHost.jar"
json清单如下:
{
"name": "com.service.host",
"description": "Native messaging host",
"path": "start.bat",
"type": "stdio",
"allowed_origins": [
"chrome-extension://--the ID--/"
]
}
我已将 HKEY_LOCAL_MACHINE\SOFTWARE\Google\Chrome\NativeMessagingHosts\com.service.host 配置为路径 e:\hosts\com.service.host.json service.bat 文件以及 jar (theHost.jar) 也是在 e:\hosts\ 目录中。尝试开始通信时出现错误:与本机消息传递主机通信时出错。我还尝试将清单中的路径更改为:e:\\hosts\\start.bat
但结果/错误是相同的。当我在 cmd 窗口中手动启动 bat 文件时,据我所知,主机会正确初始化并等待来自 Chrome 应用程序的消息。另外,当我添加该行时:
copy NUL empty.txt
在调用bat时创建一个空文件的“java - jar ...”行之前,该空文件是在手动启动bat时创建的,而不是在chrome应用程序“调用”时创建的。任何帮助将不胜感激。
版本:Windows 7、Java 7u55、Chrome 34.0.1847.116 m