与Java进程对话的简单方法
我试图找到从Java进程请求信息的最简单方法。从shell脚本中,我需要传递两个字符串作为参数,然后返回一个字符串。完全同步和阻塞 最简单的方法是什么?Http有点重,但如果没有其他内容,它也可以。管道/unix套接字通信将很简单,但需要更多的维护代码(关于超时、额外的本机绑定库等)。自己的tcp通信可以正常。。。但是用bash脚本很难处理与Java进程对话的简单方法,java,linux,ipc,Java,Linux,Ipc,我试图找到从Java进程请求信息的最简单方法。从shell脚本中,我需要传递两个字符串作为参数,然后返回一个字符串。完全同步和阻塞 最简单的方法是什么?Http有点重,但如果没有其他内容,它也可以。管道/unix套接字通信将很简单,但需要更多的维护代码(关于超时、额外的本机绑定库等)。自己的tcp通信可以正常。。。但是用bash脚本很难处理 还有其他简单、轻量级的选项不需要从脚本启动另一个JVM吗?您已经用Linux标记了它。如果这只适用于Linux,那么您可以使用mkfifo制作一对命名管道,
还有其他简单、轻量级的选项不需要从脚本启动另一个JVM吗?您已经用Linux标记了它。如果这只适用于Linux,那么您可以使用mkfifo制作一对命名管道,在从一个线程(或Java程序中的一个线程,如果需要)读取时使用Java程序块,然后通过向其写入命令来发送命令;Java程序可以在另一个上发回回复。您已经用Linux标记了它。如果这只适用于Linux,那么您可以使用mkfifo制作一对命名管道,在从一个线程(或Java程序中的一个线程,如果需要)读取时使用Java程序块,然后通过向其写入命令来发送命令;Java程序可以在另一个上发回回复。您可以使用支持来读写TCP套接字: 在一个终端中:
$ nc -l 8888
hello
why hello!
^D
$ exec 6<>/dev/tcp/localhost/8888
$ echo hello >&6
$ cat <&6
why hello!
$
在另一个终端:
$ nc -l 8888
hello
why hello!
^D
$ exec 6<>/dev/tcp/localhost/8888
$ echo hello >&6
$ cat <&6
why hello!
$
$exec 6/dev/tcp/localhost/8888
$echo hello>&6
$cat您可以使用支持读取和写入TCP套接字:
在一个终端中:
$ nc -l 8888
hello
why hello!
^D
$ exec 6<>/dev/tcp/localhost/8888
$ echo hello >&6
$ cat <&6
why hello!
$
在另一个终端:
$ nc -l 8888
hello
why hello!
^D
$ exec 6<>/dev/tcp/localhost/8888
$ echo hello >&6
$ cat <&6
why hello!
$
$exec 6/dev/tcp/localhost/8888
$echo hello>&6
$cat我肯定会使用http。如果您已经在应用服务器上运行,那么这很容易。如果不是,您可以在此处找到答案:
我肯定会使用http。如果您已经在应用服务器上运行,那么这很容易。如果不是,您可以在此处找到答案:
对于简单的通信,只需使用文件和dirwatcher即可-虽然很蹩脚但很有效。对于HTTP服务器,我会坚持使用HTTP,否则您可以尝试或编写自己的套接字连接 对于简单的通信,只需使用文件和一个dirwatcher即可-虽然很蹩脚但很有效。对于HTTP服务器,我会坚持使用HTTP,否则您可以尝试或编写自己的套接字连接 这很酷——Linux提示和它让您编写Java程序变得可移植而简单的事实。这很酷——Linux提示和它让您编写Java程序变得可移植而简单的事实。