Given a "run configuration" in Eclipse, I want to print out the associated shell command that would be used to run it.
For example: Right now, in Eclipse, if I click "play" it will run:
mvn assembly:directory -Dmaven.test.skip=true
I don't see that command, I just know that's what the IDE must run, at some point. However, some of the other run configurations are far more complex with long classpaths and virtual machine options and, frankly, sometimes I have no idea what the equivalent shell command would be (particularly when it comes to Flex).
There must be some way to access the shell command that would be associated with a "Run Configuration" in Eclipse/Flex Builder. This information must be available, which leads me to believe someone has written a plugin to display it. Or maybe there's already an option built into Eclipse for accessing this.
So is there a way to, essentially, convert an Eclipse run开发者_Python百科 configuration into a shell command?
(for context only: I'm asking because I'm writing a bash script that automates everything I do, during development--from populating the Database all the way to opening Firefox and clearing the cache before running the web app. So every command I run from the IDE needs to exist in the script. Some are tricky to figure out.)
This should work for Java and Maven processes. You can get the command line from the Process properties.
- run the process in debug mode
- right click on the process item in the "Debug" view and choose "Properties"
- the command line is displayed
Another trick if you're running on a Unix OS (although you have to be snappy about this...) is to initiate your Run.. within Eclipse and then switch over to a command prompt and run this command (Mac syntax):
ps -ef | grep java
This will print out the command line Java process invocations that are currently running. Look for the one that corresponds to your Eclipse process (check the main class, which is the last parameter on the command line) and voila!
thanks so much splash. one thing to add-- i was getting a weird error at the commandline:
ERROR: transport error 202: connect failed: Connection refused ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510) JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [../../../src/share/back/debugInit.c:708] FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197) Aborted!
this can be avoided by just taking out the agentlib argument:
-agentlib:jdwp=transport=dt_socket,suspend=y,address=localhost:56431
精彩评论