java – 如何从JVM外部调用对象中的方法?

我有一个非常简单的Java类,它使用输入验证有效地装饰Map,使用明显的void set()和String get()方法.

我希望能够有效地调用这些方法并处理来自JVM外部的返回值和异常,但仍然在同一台机器上更新:我想到的调用者不是另一个JVM;谢谢@Dave Ray

我的实施考虑是典型的

>表现
>易于实施和维护(简单?)
>可靠性
>灵活性(即我可以从远程机器呼叫等)

有没有’正确的方法?’如果没有,我的选择是什么,每个人的利弊是什么?

(事实上​​,人们已经完成并可以提供真实的反馈意见!)

解决方法:

好.这是另一个尝试,因为我知道客户端不是Java.由于您需要进程外访问以及可能的远程机器访问,因此我认为JNI不是您想要的,因为这是严格的进程(并且总是麻烦).以下是一些其他选项:

原始套接字:只需在Java中设置一个侦听器套接字并接受连接.当您获得连接时,请阅读请求并发回响应.几乎每种语言都可以使用套接字,因此这是一个非常通用的解决方案.但是,您必须定义自己的编组方案,解析等.

XML-RPC:现在这不像时髦,但它简单而有效.大多数其他语言中都有Java libraries和库.

CORBA:如上所述,CORBA是一种选择,但它非常复杂,专家越来越难以接受.

Web服务器:在您的应用程序中设置嵌入式Web服务器并处理请求.我听说过有关Jetty的好消息,或者你可以使用one provided with Java.我已经成功地使用后者将KML文件从用Java编写的模拟服务器提供给Google Earth.大多数其他语言都有用于发出HTTP请求的库.如何编码数据(XML,文本等)取决于您.

Web服务:我认为这会更复杂,但您可以使用JAX-WS将对象公开为Web服务. NetBeans有很好的工具来构建Web服务,但这可能有点过头了.

上一篇:两个C#应用程序如何通过WiFi网络发送消息?


下一篇:c# – params关键字是否保证项目与列出的顺序相同?