将环境变量添加到Eclipse快捷方式

时间:2014-02-23 23:53:54

标签: eclipse windows environment-variables

是否可以为当前的Eclipse运行(RAD)设置环境变量?

这是我的情况

我的盒子上安装了RAD 8.5和RAD 9.0。它上周突然停止了工作。它甚至不会出现。当我检查日志时,两个版本在日志中都有以下错误

java.lang.NoClassDefFoundError: com.mercury.ftjadin.hooks.interfaces.WToolkitHookQTJA 
经过一番研究后,我还发现它是由HP安装在我的盒子上的产品引起的(它是作为企业推送完成的,我甚至都不知道它)。

进一步的研究还表明,有大约4个环境变量与Eclipse发生冲突,应该删除/删除,以便RAD工作。这当然会导致HP产品无法正常工作。

所以,我想知道是否有办法在每个RAD的 eclipse.ini 文件中将这些设置为空白,或者作为RAD的缩影的一部分

C:\Software\RAD90\eclipse.exe -product com.ibm.rational.rad.product.v9.ide -showlocation -nosplash -clean

但不要在环境变量定义中将它们删空

通过这种方式,我可以同时使用这两种产品,而无需在RAD和HP Mercury产品使用之间保存变量值,并且每次都不需要进行复制/粘贴,这很容易出现用户错误/错误。

希望这个问题有道理。如果我需要澄清任何事情,请告诉我。

2 个答案:

答案 0 :(得分:0)

您可以从eclipse启动eclipse(例如RAD)(例如最小的Java插件开发),在这种情况下,您可以选择设置要使用的环境变量。 您必须将目标环境设置为RAD实例,并使用适当的环境创建运行配置。 我知道,这不太理想,但应该有效。 另一个选项是批处理文件中的unsetting env variables(本地):

set var=

虽然我不知道它是否会起作用。

答案 1 :(得分:0)

This page helped my situation

我没有使用注册表,而是选择了批处理

即使环境变量到位且具有相应的值,这些建议也可以解决这种情况。注意:在java上下文中将无法识别冲突的应用程序,因为它正在从java支持机制中排除。

影响:通过Windows注册表编辑器将加载项支持从挂钩到可执行文件的冲突中排除 要求:必须由EXE文件启动应用程序,def hasCycle(graph: ListBuffer[ListBuffer[(Int, Int)]]): Boolean = { var visited: HashSet[Int] = HashSet() var lst: ListBuffer[Int] = ListBuffer() for (node <- graph.indices) { if (visited.contains(node)) { true } else { visited += node for (item <- getChildren(graph, node)) { visited += item lst += item } for (i <- lst) { visit(graph, i, node) lst = ListBuffer() } } } def visit(g: ListBuffer[ListBuffer[(Int, Int)]], node: Int, parent: Int): Unit = { for (child <- getChildren(g, node)) { if (visited.contains(child) && (child != parent)) { true } else if (!visited.contains(child) && (child != parent)) { visit(g, child, child) } } } false } /* Return the adjacent nodes to parent in graph */ def getChildren(graph: ListBuffer[ListBuffer[(Int, Int)]], parent: Int): ListBuffer[Int] = { var parentToChildren: Map[Int, ListBuffer[Int]] = Map() var childrenOfI: ListBuffer[Int] = ListBuffer() for (i <- graph.indices) { for (j <- graph(i)) { childrenOfI += j._1 } parentToChildren += (i -> childrenOfI) childrenOfI = ListBuffer() } parentToChildren(parent) }

除外

说明:

一个。找到与加载项支持冲突的应用程序的可执行文件名。使用任务管理器或Microsoft Process Explorer。

湾打开Windows注册表编辑器。

℃。导航至:Java.exe/Javaw.exe/jpnlauncher.exe 对于Windows x64上的32位应用程序:

HKEY_LOCAL_MACHINE\SOFTWARE\Mercury Interactive\JavaAgent\Modules

d。使用冲突的软件可执行文件名的名称创建一个DWORD值,并将值设置为0.

  1. 影响:不为特定的已启动会话加载Java支持
  2. 要求:使用批处理文件启动应用程序 说明:

    一个。创建批处理文件(.bat)

    湾在执行Java应用程序的启动之前,复制/粘贴到编码之下。

    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Mercury Interactive\JavaAgent\Modules
    

    此方法将禁用.bat文件的运行会话的java环境变量。批量执行关闭后,环境变量更改将丢失。