如何查看 Eclipse“运行配置”使用的 Shell 命令

37
在Eclipse中,给定一个“运行配置”,我想打印出与其关联的将用于运行它的shell命令。
例如: 现在,在Eclipse中,如果我点击“运行”,它会执行以下操作: mvn assembly:directory -Dmaven.test.skip=true 我看不到该命令,我只知道这是IDE必须在某个时候运行的命令。 然而,其他一些运行配置更为复杂,具有很长的类路径和虚拟机选项,老实说,有时候我不知道等效的shell命令是什么(特别是涉及Flex时)。
一定有一种方法可以访问与Eclipse/Flex Builder中“运行配置”相关联的shell命令。这些信息肯定可用,这使我相信有人编写了插件来显示它。或者可能已经在Eclipse中内置了访问此内容的选项。
那么,是否有一种方法将Eclipse运行配置转换为shell命令?
(仅供参考:我询问的原因是因为我正在编写一个bash脚本,自动化我进行的所有工作——从填充数据库到打开Firefox并清除缓存以运行Web应用程序的所有内容。因此,我从IDE运行的每个命令都需要存在于脚本中。其中一些难以弄清楚。)

2
它不一定会运行一个shell命令。实际上,它几乎从不会这样做,因为Eclipse没有shell或使用shell解释器。像maven和ant这样的工具有Java钩子,可以绕过任何对shell的需求。 - Mark Peters
3个回答

55

这适用于Java和Maven进程。您可以从进程属性中获取命令行。

  • 以调试模式运行该进程
  • 在“调试”视图中右键单击进程项,然后选择“属性”
  • 命令行将被显示

1
这正是我正在寻找的东西。我在Flash Builder 4中进行了测试(它是一个简化版的Eclipse),但在那里它没有起作用,但我看到它在其他情况下可能会起作用。所以当我再次启动时,我会在我的普通Eclipse中检查它。 - gMale
这对我有效,但请参考下面的Miki的答案...需要删除agentlib参数。 - Bill
1
请注意,即使在非调试模式下运行,您也可以获得它。此外,如果您无法找到进程项,则可能是“调试”视图树中的第二个项目。 - Peter Tseng
如果进程已经退出,内部的<terminated>属性将具有完整的命令行。谢谢! - Aquarius Power

18

如果你在Unix操作系统上运行(尽管你必须迅速执行此操作...),另一个技巧是在Eclipse中启动你的“Run”,然后切换到命令提示符并运行此命令(Mac语法):

ps -ef | grep java

此代码将打印当前正在运行的命令行Java进程调用。查找对应于您的Eclipse进程的进程(检查主类,它是命令行中的最后一个参数),然后就可以了!


2
这真的很简单而且有效。谢谢。 - nonbeing
将“java”替换为您的主类名称,您将有更少的结果需要排序。 - Nateowami

4
非常感谢Splash。有一件事需要补充 - 我在命令行中遇到了一个奇怪的错误:
ERROR: transport error 202: 连接失败:连接被拒绝 ERROR: JDWP Transport dt_socket 初始化失败,TRANSPORT_INIT(510) JDWP 退出错误 AGENT_ERROR_TRANSPORT_INIT(197): 没有传输初始化 [../../../src/share/back/debugInit.c:708] 本地方法中的致命错误:JDWP No transports initialized,jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197) 已中止!
只需删除agentlib参数即可避免此问题:
-agentlib:jdwp=transport=dt_socket,suspend=y,address=localhost:56431

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接