【发布时间】:2010-11-05 18:36:43
【问题描述】:
我有一个 Java 程序,我想从我的 Win32 应用程序发送一个命令。通常我会使用WM_COPYDATA,但我有哪些 Java 选项?
【问题讨论】:
我有一个 Java 程序,我想从我的 Win32 应用程序发送一个命令。通常我会使用WM_COPYDATA,但我有哪些 Java 选项?
【问题讨论】:
不,你不能。
你必须创建一个网络服务器并监听一个(本地)套接字。或者,也可以使用 JNI。
【讨论】:
Java 和 win32 bith 实现了许多相同的技术,因此让两个应用程序通信并非不可能,只需选择两个应用程序通用的传输和协议
一些选项:
希望对你有帮助
【讨论】:
您需要创建一个网络服务器,如 J16 SDiZ 所述。
就我个人而言,我会使用 XML-RPC 或其他一些简单的标准化协议。
【讨论】:
有一些方法可以在 Java 和 Windows 之间进行互操作。按力量和难度排序:
旁注:如果您同时处理字符串,请始终考虑到 Java 将字符串处理为与字节数组完全不同的东西。特别是如果您使用 Windows ANSI 字符串,请注意字符 81、8D、8F、90 和 9D 在 Windows-1252 代码页中指定为未定义,因此如果您的 Windows 字符串包含这些元素,Java 将产生问号或异常。因此,如果可能,请在 Windows 端使用 WChar 字符串或将自己限制为安全字符。
【讨论】:
您可以使用命令行 I/O 流来发送命令并检索答案:
System.in 包装到 BufferedReader 中并调用 readLine()
System.out.println() 写回复我猜 Win32 有一些方法可以捕获你启动的应用程序的 I/O 流。
基本上相当于 Windows 的 Linux 管道方式:
ls | grep java
【讨论】: