This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
I figured out there is def. a bug in this question.
I tried it all on my own console
\test\javac -classpath MyJar.jar GetJar.java
\test\java GetJar Exception in thread "main" java.lang.NoClassDefFoundError: myApp/Foo at GetJar.main(GetJar.java:4) Caused by: java.lang.ClassNotFoundException: myApp.Foo 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) at java.lang.ClassLoader.loadClassInternal(Unknown Source) ... 1 more
Which does work is: \test\java -classpath MyJar. jar:. GetJar 8 Another possible way to get this done is: \test\javac -classpath MyJar.jar GetJar.java \test\javac MyApp/Foo.java
\test\java GetJar 8
And last but not least, the simplest thing to do is:
\test\javac GetJar.java \test\java GetJar 8
GetJar.java uses myApp.Foo. javac searches for it, finds a myApp/Foo.java, compiles it and uses that one. java GetJar then also uses the class file instead of the jar.
Hm. I think it's somewhat "oookayish" to have errors in a book, as there are so many things to check - you will never have a book without a single error. But what about the real exam?! How can I be sure that there will not be similar errors?! You only do the exam and at the end they tell you your score, without telling you what (and why) was wrong - so you neither have any option to complain about exam bugs...
Listen, I'm not as young as I used to be My process is to collect a few possible errata, like the one you guys are discussing, then put on my Java hat and look them all over. So, this question is on my list of things to look at - I'll let you know what I think once I've given it a good review.
Spot false dilemmas now, ask me how!
(If you're not on the edge, you're taking up too much room.)