是否可以为当前的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产品使用之间保存变量值,并且每次都不需要进行复制/粘贴,这很容易出现用户错误/错误。
希望这个问题有道理。如果我需要澄清任何事情,请告诉我。
答案 0 :(得分:0)
您可以从eclipse启动eclipse(例如RAD)(例如最小的Java插件开发),在这种情况下,您可以选择设置要使用的环境变量。 您必须将目标环境设置为RAD实例,并使用适当的环境创建运行配置。 我知道,这不太理想,但应该有效。 另一个选项是批处理文件中的unsetting env variables(本地):
set var=
虽然我不知道它是否会起作用。
答案 1 :(得分:0)
我没有使用注册表,而是选择了批处理
即使环境变量到位且具有相应的值,这些建议也可以解决这种情况。注意:在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.
要求:使用批处理文件启动应用程序 说明:
一个。创建批处理文件(.bat)
湾在执行Java应用程序的启动之前,复制/粘贴到编码之下。
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Mercury Interactive\JavaAgent\Modules
此方法将禁用.bat文件的运行会话的java环境变量。批量执行关闭后,环境变量更改将丢失。