我已经拥有的东西:
使用eclipse keppler我正在创建一个eclipse插件,可以在linux,windows和mac下工作。 我试图将一些现有的Java代码包装到这个eclipse插件中。这很好用。可以通过单击插件ui中的按钮来启动包装代码的执行。包装代码使用一些环境变量。当这些被设置为环境变量并且然后启动eclipse时,找到并使用变量。
我想做什么:
我想在插件ui中的某些文本字段中设置所需的环境变量,然后开始执行包装的代码,然后应该使用变量形成文本字段,这样我就不再需要将它们设置为环境变量在开始日食之前。这显然会更灵活。 启动run / debug-process时,eclipse ide本身会使用此功能。对于这些过程,可以设置环境变量。这是我想要使用的机制。
我的问题:
答案 0 :(得分:1)
如何从eclipse插件启动进程并为其提供在插件ui中设置的设置环境变量?
从插件用户界面获取env变量名称和值。
使用ProcessBuilder
或Runtime.exec()
启动具有相应环境变量的新(外部)流程。
(第二步与您未使用Eclipse时的操作相同。)
可能还有一种特定于Eclipse的方法,但必须使用ProcessBuilder
或Runtime.exec()
。
是否有必要使用
ProcessBuilder
或Runtime.exec()
或者是否有一些仅限java的解决方案?
如果您想将Java代码作为单独的流程运行,那么在某种程度上您必须使用ProcessBuilder
或Runtime.exec()
。相反,虽然可以在当前的JVM"中运行Java应用程序,但您无法更改当前应用程序的环境变量设置。 (从Map
获得的System.getEnv()
被记录为"不可修改&#34 ;.)
(我不确定你的意思是什么"只有java"。你可以说一个JVM使用ProcessBuilder
或Runtime.exec()
启动另一个JVM是"仅限java"。)
是找到搜索日食源代码的答案的唯一方法吗?
没有。你也可以通过阅读javadocs来找到答案...就像我刚刚做的那样: - )