java - 通过命令行与应用程序通信

标签 java linux bash shell

我目前正在试验一个 java“服务器应用程序”,它应该在 ubuntu 服务器的后台运行。
当前的系统并不完美,这就是我想在新系统上工作的原因...
目标是在后台运行 java 应用程序(通过 nohup 或 linux 服务)并且仍然能够执行命令(停止状态等)来控制此应用程序的行为。
我想创建一个服务器套接字,它正在监听本地主机,这使我能够编写一个 java“客户端”应用程序,它向服务器发送命令并在之后终止......
我的问题是,是否有可能避免拥有这样的“客户端”应用程序。
如果我有办法仅使用 bash 将字符串发送到服务器(例如包括 curl 等工具),那将是理想的。 这可能吗?
我计划的系统是一个好的计划吗?

感谢任何帮助!

最佳答案

您需要一个服务协议(protocol)。

正如您所说,“使用 curl 怎么样”?当然,您可以使用 rest api 创建一个 web 服务。

Web 服务非常简单,如果你只是想拥有一些简单的 io,你可以阅读 https://www.playframework.com/ ,并在 30 分钟内使用它(25 分钟下载包,5 分钟阅读文档)


另一种方法是使用“nc”作为“客户端”,一个简单的介绍页面可以在这里找到:http://man.openbsd.org/OpenBSD-current/man1/nc.1

你可以写

echo "your command" | nc localhost 6666

向服务器发送套接字请求。

但是,您应该自己定义协议(protocol)。

关于java - 通过命令行与应用程序通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42214225/

相关文章:

java - Akka 2.3.6 中缺少 IOManager

java - 如何编程在Excel中保存一堆 ".xls"文件

mysql - 测试脚本 - 查找打开的 MySQL 端口并检查数据库

bash - 为 bash 解析 "library"的参数?

Java AWT/Swing Graphics - 为什么 getGraphics() 不能作为字段(实例变量)?

java - 如何在 JFrame 中设置图像的位置

c - 为什么黄金链接器会导致 dl_iterate_phdr() 不返回我的自定义注释部分?

mysql - 在 Terraform 中使用 Bash 连接到 MySQL 失败但通过 SSH 工作

linux - Eclipse 3.8 的 CSS 文件位于哪里?

BASH 在脚本中同时使用位置参数和可选参数