加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-15 05:18:47 所属栏目:Java 来源:网络整理
导读:我有一个 Java程序,我想从我的Win32应用程序发送命令.通常我会使用WM_COPYDATA,但我对Java有哪些选择? 解决方法 有一些方法可以在Java和Windows之间进行互操作.命令权力和困难: 对于处理窗口消息,您可以使用Jawin – 它甚至具有demo of how to handle wind
我有一个 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字符串或限制自己使用安全字符.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读