Forums Register Login

Java Debugger API example - Trace.java running problem

+Pie Number of slices to send: Send
I am trying to run Trace.java program that comes as a sample as part of Java Debugger Interface. This program provides command line trace of any input java program to it. It expects the name of java program to be traced as parameter.
This Trace.java is located in package "com.sun.tools.example.trace". The online location of Trace.java is at :- http://www.docjar.com/html/api/com/sun/tools/example/trace/Trace.java.html

And I pass another class to be traced as argument to this program called as Client.java which is located at package "com.sun.tools.example.trace". Both Trace.java and Client.java are part of same java project. Now when I try to run Trace.java using argument "com.sun.tools.example.trace.Client" I get below exception in my console:-

java.lang.NoClassDefFoundError: com/sun/tools/example/trace/Client
Caused by: java.lang.ClassNotFoundException: com.sun.tools.example.trace.Client
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: com.sun.tools.example.trace.Client. Program will exit.
Exception in thread "main" -- VM Started --
-- The application exited --


Any idea why I am getting this error though Client.java is present at correct path as provided in argument to Trace.java?

Many thanks in advance.

-Pras
+Pie Number of slices to send: Send
How are you including the com.sun.tools.example.trace.Client class in the classpath? In other words, what command are you running, and what is the layout of the involved files and directories?
+Pie Number of slices to send: Send
I am using eclipse IDE to tun this application:-

I am passing argument "com.sun.tools.example.trace.Client" as "Program Arguments" in "Arguments" tab of "Run Configuration". Then with this Run Configuration I run "Trace.java" as java program.

My java project structure in eclipse is:-

jdb --> Java project Name
--src --> Source Directory
--com.sun.tools.example.trace
--Trace.java
--Client.java

And output directory for this project is:- jdb/bin


+Pie Number of slices to send: Send
Any idea about this? Anybody?

Regards,
Pras
+Pie Number of slices to send: Send
It's quite late for an answer. But anyway, I think the required classpath is not passed thru your remote vm (the one which runs your program under trace). Or in other words you must provide the remote vm with the required classpath. This is not done in the example application. Have a look at this example at connectorLaunchArguments(...)

https://svn.strategoxt.org/repos/StrategoXT/spoofax-imp/trunk/org.strategoxt.imp.debug.stratego.core/src/org/strategoxt/debug/core/util/VMLauncherHelper.java
+Pie Number of slices to send: Send
Welcome to the Ranch Max Keller.
Be reasonable. You can't destroy everything. Where would you sit? How would you read a tiny ad?
a bit of art, as a gift, the permaculture playing cards
https://gardener-gift.com


reply
reply
This thread has been viewed 3180 times.
Similar Threads
JDK malfunction
NoClassDefFoundError
java app launch on console
Package Headache
Applet throwing exception when running it through web browser
More...

All times above are in ranch (not your local) time.
The current ranch time is
Mar 28, 2024 06:47:17.