有没有一种简单的方法可以在程序执行期间将Linux/Unix命令传递给Java的args[]
?我想将 Java 应用程序与 cron 一起使用。
最佳答案
JVM 已经为您做到了这一点:
public static int main(String args[]) {...
在 args[] 中,您将拥有命令行参数。
如果您想要更复杂的功能(如命名参数,例如 -title = MyTitle),您可以尝试 Apache 命令行界面 (CLI) 库。
<小时/>编辑回答 featon 的评论:那是行不通的,操作系统会将其解释为启动新进程的调用。另外,所有java进程的进程名称都是“java”(操作系统运行的是JVM,并不知道它里面做了什么)。
如果您想要与已运行的 Java 进程通信,则必须打开通信路径。两种选择是:
- 打开 TCP 端口,启动另一个在此处发送消息的应用程序(无论是否为 Java)。
- 让进程定期列出一个目录,如果出现任何新文件,请等待一段时间(以便完全创建),打开它,读取它并删除它。
另一条途径是使用 J2EE 应用服务器来实现更面向连续运行的 Java 进程的功能(甚至相当于 cron 任务),但它们需要一些努力才能熟悉。
关于java - 执行期间从命令行读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6634510/