Skip to main content

Good Java bookshelf


Learning Java 3rd Edition

Amazon.com: Learning Java
Amazon.co.uk: Learning Java



Amazon.com: Effective Java
Amazon.co.uk: Effective Java
Joshua Bloch is a Java genius. A 2nd edition is out soon according to Amazon.com


Recommendations (Updated for Java 5):

Thinking in Java (4th Edition)

Amazon.com: Java Puzzlers

Amazon.com: Java Precisely, 2nd Edition

Java Cookbook , Second Edition
I have the first edition which is excellent, but the 2nd edition is updated for Java 5 so that's on the list to purchase.

Head First Java , Second Edition

Java Network Programming , Third Edition

Head First Design Patterns

Java 5.0 Tiger: A Developer's Notebook

Filthy Rich Clients: Developing Animated and Graphical Effects for Desktop Java™ Applications

Amazon.com: Pragmatic Unit Testing in Java with JUnit

Amazon.com: Java How to Program (7th Edition)

Amazon.com: Java Concurrency in Practice

Popular posts from this blog

Overcome Java JNI gdb errors on GNU/Linux

If you happen to try to debug any Java JNI programs using gdb on GNU/Linux you will soon come across error messages. For example : $ gdb --args java MyJavaProgramUsingJNI cannot find user-level thread for LWP nnn: generic error warning: Cannot initialize thread debugging library: versions of libpthread and libthread_db do not match The reason for this is that the java program mucks around with LD_LIBRARY_PATH and that prevents gdb from running correctly. To overcome this, you have to run your Java program and place a pause in the Java code, such as reading a key, and then in another shell, run gdb to attach to the running Java process. You can then set your breakpoint on your JNI code and debug it. Here is an example : Compile your Java program: $ javac JNITest.java Generate the JNI header file: $ javah -jni JNITest.java Create and compile your C code library: $ cat jnilib.c #include "JNITest.h" JNIEXPORT jint JNICALL Java_JNITest_addValues( JNIEnv...