如何向正在运行的Java程序发送命令?

我有一个 Java程序,我想从我的Win32应用程序发送命令.通常我会使用WM_COPYDATA,但我对Java有哪些选择?

解决方法

有一些方法可以在Java和Windows之间进行互操作.命令权力和困难:

>对于处理窗口消息,您可以使用Jawin – 它甚至具有demo of how to handle window messages或类似的功能.当然,如果将Java程序绑定到像Jawin这样的库,它将永远不会在非Windows机器上运行
>对于Win32和Java之间的简单交互,限制在localhost上侦听的套接字将是我最喜欢的选择.协议可能很简单,但我更喜欢纯文本协议以便于调试.请注意,如果用户终止程序,套接字连接可能会中断.
>您可以使用(本地)Web服务,如此处其他帖子中所建议的那样.双方都要确保使用Webservice / XML库来构造和解析消息,如果你进行字符串连接,那么构造格式错误的XML就太容易了.
>您可以将Windows程序的功能放入COM组件并使用Java-to-COM桥接器:Jacob或j-Interop是流行的免费库,j-Integra似乎是具有遗留系统的企业的热门选择.
>您可以将Java程序的功能放入COM组件中,并使用Sun的Java-ActiveX桥.根据我的个人经验,这是一个相当尴尬的选择:Java-ActiveX桥的开发自1.4开始就停滞不前,ActiveX的安装使得Java组件安装在JRE目录中的某个位置并调试ActiveX容器内的Java组件相当麻烦.

旁注:如果您要处理双方的字符串,请始终考虑Java将字符串处理为与字节数组完全不同的字符串.特别是如果您使用的是Windows ANSI字符串,请注意在Windows-1252代码页中将字符81,8D,8F,90和9D指定为未定义,因此如果Windows字符串包含这些元素,Java将产生问号或异常.因此,如果可能的话,在Windows端使用WChar字符串或限制自己使用安全字符.

相关文章

摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠...
摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠...
今天犯了个错:“接口变动,伤筋动骨,除非你确定只有你一个...
Writer :BYSocket(泥沙砖瓦浆木匠)微 博:BYSocket豆 瓣:...
本文目录 线程与多线程 线程的运行与创建 线程的状态 1 线程...