java - Chrome native 消息传递无法执行批处理文件

标签 java google-chrome chrome-native-messaging

这是我的主机的 list :

{
   "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
  • 当我单独启动批处理文件时,它可以工作。
  • 当我使用 EXE 文件(用 C# 开发)从我的网站启动扩展程序时,它可以正常工作。
  • 但是当我使用 BAT 文件从我的网站启动扩展程序时,它似乎不起作用。

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

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

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

    public static void main(String[] args) { 而(真){} }

还有其他方法来测试 jar 应用程序吗?

提前致谢

最佳答案

以下是您问题的一些答案:

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

在 BAT 中,您可以将 Java 程序的输出发送到文本文件。如果尝试调用后该文件存在,则意味着扩展程序能够启动 native 应用程序,并且您将能够看到应用程序输出。例如,在 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) { }
}

有关从 java 接收和发送 stdio 消息的信息,请参阅这篇文章: Java native messaging with chrome extension - cannot correctly write length

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

我建议从您的 Java 应用程序生成日志,以便您可以查看接收和发送的消息,包括表示消息长度的初始 4 个字节。

关于java - Chrome native 消息传递无法执行批处理文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31906524/

相关文章:

javascript - 带有 Chrome 的 CORS XSL

json - 当 JSON 大小超过 65500 个字符时,golang 中的 Chrome native 消息传递主机失败

java - Maven:com.example.speech:speech-google-cloud-samples 的不可解析父 POM

java - 使用 Hudson 在 Eclipse 中编译 Google Web Toolkit 项目

java - 获取 PageRank

jquery - 谷歌浏览器不显示箭头标志

java - 菜单项加速键仅在菜单项显示后才起作用

google-chrome - TinyMCE 未捕获引用错误 : ext is not defined

javascript - 使用 Firefox native 消息进行异步 webRequest.onBeforeRequest URL 检查

google-chrome-extension - connectNative 在 Chrome 扩展程序中自行断开连接