【问题标题】:How to preserve process/ ProcessBuilder object?如何保存进程/ ProcessBuilder 对象?
【发布时间】:2019-06-14 22:18:57
【问题描述】:
Process ps = new ProcessBuilder("iexplore.exe").start();  

我只是调用这个函数并探索打开的应用程序。这里ps.destroy(); 正在处理相同的代码,但我想从另一个java 代码中杀死这个ps 对象。 Java 7 中没有 PID 的概念,我也使用了 Serializable 但没有运气。有什么解决办法吗?

【问题讨论】:

  • 你好。你的问题不清楚。您能否提供更多信息? 来自另一个 Java 代码 是什么意思?这是否意味着来自另一个 Java 应用程序
  • 您的标题与您的问题不符。而serializable和它有什么关系?
  • 我已经使用 new processBuilder().start() 打开了 Internet Explorer。现在我想从另一个 java 应用程序中关闭这个 Internet Explorer。 Process 类提供了 destroy() 方法,通过它我可以关闭它。因此,我想使用序列化来维护同一进程对象的状态,但 Process 类没有实现可序列化接口。有没有办法让这个对象可序列化或者有没有其他方法可以关闭这个应用程序?

标签: java process processbuilder serializable


【解决方案1】:

从 Java 9 开始就有 Process.pid() 方法可用:

Process p = new ProcessBuilder("top").start();
long pid = p.pid();

【讨论】:

  • 使用您的 sn-ps 后出现 java.lang.NoSuchMethodException: java.lang.ProcessImpl.pid() 异常。
  • 我正在使用 JAVA 7 和 JAVA 8。
  • @prithavirajnagar 更新了我的答案,它来自 Java 9。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-02
  • 2016-11-13
相关资源
最近更新 更多