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
- 当我单独启动我的批处理文件时,它起作用了。
- 当我使用 EXE 文件(用 c# 开发)从我的网站启动我的扩展程序时,它有效。
但是当我使用 BAT 文件从我的网站启动我的扩展程序时,它似乎不起作用。
我可以只测试它的 BAT 部分吗? (输入来自 BAT 的回显文本以在我的应用程序上查看结果?)
我尝试使用此行启用登录 chrome:start chrome --enable-logging --v=1
但似乎在 AppData\Local\Google\Chrome\User Data\chrome_debug.log
中找不到特定日志,我是否需要添加记录特定错误的东西?
我的 Java 代码目前就这么简单:
public static void main(String[] args) {
while(true) { }
}
是否有其他方法来测试 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 个字节。
这是我的主机清单:
{
"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 文件从我的网站启动我的扩展程序时,它似乎不起作用。
我可以只测试它的 BAT 部分吗? (输入来自 BAT 的回显文本以在我的应用程序上查看结果?)
我尝试使用此行启用登录 chrome:
start chrome --enable-logging --v=1
但似乎在AppData\Local\Google\Chrome\User Data\chrome_debug.log
中找不到特定日志,我是否需要添加记录特定错误的东西?我的 Java 代码目前就这么简单:
public static void main(String[] args) { while(true) { } }
是否有其他方法来测试 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 个字节。