我用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
答案 0 :(得分:2)
要调试在JS上下文中没有提供有意义消息的错误,您可以尝试使用Chrome logging;这可以提供更多信息(在您的情况下有所帮助)。
答案 1 :(得分:0)
主持人的名字很长。从注册表中删除当前主机并使用较短的名称重新创建它。 E.g:{{1}}