使用自己的环境变量从eclipse插件启动代码

时间:2014-09-22 11:29:50

标签: java eclipse eclipse-plugin environment-variables

我已经拥有的东西:

使用eclipse keppler我正在创建一个eclipse插件,可以在linux,windows和mac下工作。 我试图将一些现有的Java代码包装到这个eclipse插件中。这很好用。可以通过单击插件ui中的按钮来启动包装代码的执行。包装代码使用一些环境变量。当这些被设置为环境变量并且然后启动eclipse时,找到并使用变量。

我想做什么:

我想在插件ui中的某些文本字段中设置所需的环境变量,然后开始执行包装的代码,然后应该使用变量形成文本字段,这样我就不再需要将它们设置为环境变量在开始日食之前。这显然会更灵活。 启动run / debug-process时,eclipse ide本身会使用此功能。对于这些过程,可以设置环境变量。这是我想要使用的机制。

我的问题:

  • 如何从eclipse插件启动进程并为其提供在插件ui中设置的设置环境变量?
  • 是否有必要使用ProcessBuilder或Runtime.exec()或是否有一些仅限java的解决方案?
  • 找到搜索日食源代码的答案是唯一的方法吗?

1 个答案:

答案 0 :(得分:1)

  

如何从eclipse插件启动进程并为其提供在插件ui中设置的设置环境变量?

  1. 从插件用户界面获取env变量名称和值。

  2. 使用ProcessBuilderRuntime.exec()启动具有相应环境变量的新(外部)流程。

  3. (第二步与您未使用Eclipse时的操作相同。)

    可能还有一种特定于Eclipse的方法,但必须使用ProcessBuilderRuntime.exec()

      

    是否有必要使用ProcessBuilderRuntime.exec()或者是否有一些仅限java的解决方案?

    如果您想将Java代码作为单独的流程运行,那么在某种程度上您必须使用ProcessBuilderRuntime.exec()。相反,虽然可以在当前的JVM"中运行Java应用程序,但您无法更改当前应用程序的环境变量设置。 (从Map获得的System.getEnv()被记录为"不可修改&#34 ;.)

    (我不确定你的意思是什么"只有java"。你可以说一个JVM使用ProcessBuilderRuntime.exec()启动另一个JVM是"仅限java"。)

      

    是找到搜索日食源代码的答案的唯一方法吗?

    没有。你也可以通过阅读javadocs来找到答案...就像我刚刚做的那样: - )