java - 在命令行中与 jar 创建后交互的方法有哪些?

标签 java

我想创建一个系统,其中有一个可以处理任务的中央处理器。任务将随机发送到中央处理器,发送的数量和时间都是随机的。

例如

  • 中央处理器启动
  • 任务 0 在时间 0 到来
  • 任务 1 在时间 1 到来
  • 任务 2 在时间 6 到来
  • 任务 3 在时间 6 到来
  • 任务 4 在时间 10 到来
  • 中央处理器在时间 11 仍在运行

用户将决定何时启动处理器处理的任务。流程大概是这样的。处理器启动。接收到任务并且处理器处理该任务。如果处理器繁忙时收到任何任务,请将其添加到队列中。

任务是运行自动化任务,获取文件位置、设备名称、设备类型。我的第一个想法是让中央处理器成为一个 jar,并让任务创建与 java -jar CentralProcessor.jar 后的 jar 进行交互,但我认为这是不可能的。

理想情况下,任务可以从任何命令行通过命令行发送到 jar(在 jar 启动后),例如第二个 - 不是启动 jar 的那个。 Java 程序将是一个命令行程序。我该怎么做呢?我了解到一种选择是使用 HTTP,但这看起来很庞大。

最佳答案

来自评论:

所以你想要一个作为守护进程运行的处理器。它需要以某种方式接收任务。按照您的建议使用命令行会出现问题,因为 java -jarwhatever.jar 创建了一个新进程和 jvm。您真正需要的是客户端-服务器模型,它建议套接字交互。您的 CentralProcessor 是服务器,您需要一个客户端 jar,以便 java -jar Client.jar -some -args -describing -task 将连接到中央处理器并提交任务。 – 泰勒

关于java - 在命令行中与 jar 创建后交互的方法有哪些?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34027812/

相关文章:

java - Apache Commons Net FTP 正在上传损坏的文件

java - jackson 按字段名称自定义序列化程序?

java - 如何在spring中创建postmapping方法,以便客户端只需要输入部分对象而不是完整对象?

java - 如何为使用数据库的 Android 应用程序构建服务器和客户端之间的通信

java - 后退按钮转到上一页

java - 使用 Lambda 表达式的线程

java - Json解析listview自定义适配器

java - 如何过滤 c :forEach using the value selected in a drop down? 给出的结果

java - 如何在 RFT 中使用 Java 找到滚动条的末尾

java - 有没有办法强制 JTree 中的节点必须是唯一的,最好不要编写 TreeModel 的实现?