Chrome 本机消息无法执行批处理文件

Chrome native messaging cannot execute batch file

这是我的主机清单:

{
   "allowed_origins" : 
    [ 
        "chrome-extension://EXTENSION_ID/"
    ],
   "description" : "my.app.host",
   "name" : "my.app.host",
   "path" : "‪C:\chromejar\launch.bat",
   "type" : "stdio"
}

这是我的 launch.bat 文件的内容:

setlocal enableextensions disabledelayedexpansion

for %%a in ("%~dp0\ChromeConnector.jar") do set "JARFILE=%%~fa"
    java -jar "%JARFILE%"
pause

是否有其他方法来测试 jar 应用程序?

提前致谢

以下是对您问题的一些回答:

1.我可以只测试它的 BAT 部分吗? (输入来自 BAT 的回显文本以在我的应用程序上查看结果?)

在您的 BAT 中,您可以将 Java 程序的输出发送到文本文件。如果在尝试调用后文件存在,则意味着扩展能够启动本机应用程序,您将能够看到应用程序输出。例如,在你的 BAT 的第四行你可以这样做:

java -jar "%JARFILE%" >> mybatfile.log

2。我尝试使用此行启用登录 chrome:start chrome --enable-logging --v=1 但似乎在 AppData\Local\Google\Chrome\User Data\chrome_debug 中找不到特定日志.log,我需要添加一些东西来记录特定的错误吗?

查找包含 "native_message_process_host.cc" 的邮件,例如:

[4680:5612:0809/194917:ERROR:native_message_process_host.cc(291)] Native Messaging host tried sending a message that is 2036688930 bytes long.

3。目前,我的 Java 代码就这么简单:

public static void main(String[] args) {
    while(true) { }
}

参考这个 post 从 java 接收和发送 stdio 消息: Java native messaging with chrome extension - cannot correctly write length

4.还有其他测试 jar 应用程序的方法吗?

我建议从您的 java 应用生成日志,这样您就可以查看接收和发送的消息,包括表示消息长度的前 4 个字节。