Welcome to the Linux Foundation Forum!

Finding out what command is running a program

Is there a way to find out what command is running a program when you click on it and run it graphically? My problem is with an executable jar file. When I right click on it in a graphical environment and choose to run it with the jre it runs fine. However, running java minecraft.jar from the command line results in this error:

Exception in thread "main" java.lang.NoClassDefFoundError: minecraft/jar
Caused by: java.lang.ClassNotFoundException: minecraft.jar
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: minecraft.jar. Program will exit.

I thought this may be a problem with the jar file, but if that is so why would it run with the graphical run method? What I would like is to find out exactly what command clicking "run with Sun Java 6 Runtime" is executing so that the file is working. Once I know that it should be possible to run that command manually, as well as from a .sh file.

Thanks in advance.

EDIT: The problem was simply that I was running the jar with incorrect syntax. The syntax for executable jars is java -jar foo.jar. It would still be nice to know the original question though.

Comments

  • mfillpot
    mfillpot Posts: 2,177
    The jar file is sending many commands to java, to see all commands that are being run you can rung "ps -AF" in your terminal, just use grep to filter your results. You can also grep the output of lsof to determine exactly what files are being used by your executable.
  • I didnt mean for the jar file specificly. Just whenever I say open file with it would be nice to know which command is actually opening that file. Is there a way to do that, besides manually finding out what the commands for that program are?
  • mfillpot
    mfillpot Posts: 2,177
    You can check the file type association in your desired window manager to determine what the default applications are for each file type, you can also use the same tool to set the default and available applications. However without knowing what Linux based distro or window manager you are using I cannot give you the specific instructions to locate the settings.

    Please tell us what Linux based distro and or window manager you are using.
  • Sorry, I should have done that in the first place. I am running Ubuntu 11.04 with the default file viewer.

Categories

Upcoming Training