Chrome应用无法与Windows上的本机主机通信

时间:2014-04-16 09:53:41

标签: google-chrome google-chrome-app chrome-native-messaging

我用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
" java - jar之前的

..."在调用bat时创建一个空文件的行,当手动启动bat时创建空文件,并且在调用""时不创建空文件。通过Chrome应用程序。 任何帮助将不胜感激。

版本: Windows 7,Java 7u55,Chrome 34.0.1847.116 m

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

主持人的名字很长。从注册表中删除当前主机并使用较短的名称重新创建它。 E.g:{{1}}