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