Chrome原生邮件无法执行批处理文件

时间:2015-08-09 16:48:59

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

以下是我的主持人的清单:

{
   "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代码目前很简单:

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

有没有其他方法可以测试jar应用程序?

提前致谢

1 个答案:

答案 0 :(得分:1)

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

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) { }
}

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

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

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