执行期间从命令行读取

时间:2011-07-09 11:42:53

标签: java cron

在程序执行期间,有没有简单的方法将Linux / Unix命令传递给Java的args[]?我想在cron中使用Java app。

2 个答案:

答案 0 :(得分:3)

JVM已经为您做到了这一点:

public static int main(String args[]) {...

在args []中,您将拥有命令行参数。

如果您想要更多的软件(作为命名参数,v.g。-title = MyTitle),您可以尝试Apache命令行界面(CLI)库。


编辑以回答featon的评论:这不起作用,操作系统会将其解释为启动新流程的调用。此外,所有java进程的进程名称都是“java”(操作系统运行JVM并且不知道它在内部的作用)。

如果您想要与已经运行的Java进程通信,则必须打开通信路径。两种选择是:

  • 打开TCP端口,启动另一个在那里发送消息的应用程序(Java或不是Java)。
  • 让流程定期列出目录,如果有任何新文件出现等待(因此它已完全创建),打开它,读取并删除它。

另一条路径是使用J2EE应用程序服务器实现更多面向连续运行的Java进程的功能(甚至是cron任务的等价物),但他们需要付出一些努力才能熟悉。

答案 1 :(得分:0)

如果你有两个命令或两个在String []参数中传递它。如果您有更多命令,请考虑将它们放在某个文件中,并仅将该路径作为java程序参数传递给该文件。