5

我用 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

4

2 回答 2

2

要调试在 JS 上下文中没有给出有意义消息的错误,您可以尝试使用Chrome 日志记录;这可以提供更多信息(这对您的情况有所帮助)。

于 2014-04-16T12:37:46.683 回答
0

主机名太长了。从注册表中删除当前主机并使用较短的名称重新创建它。例如:REG ADD "HKCU\Software\Google\Chrome\NativeMessagingHosts\com.chrome.example" /ve /t REG_SZ /d "%~dp0com.google.chrome.example.echo-win.json" /f

于 2016-12-23T20:53:25.043 回答