Console aborts with return code -1 on error
authorMarkus Bröker <mbroeker@largo.dyndns.tv>
Thu, 16 Apr 2009 12:49:13 +0200
changeset 55 2a20d0184041
parent 54 c064ce9f40f5
child 56 966ad681f25d
Console aborts with return code -1 on error committer: Markus Bröker <mbroeker@largo.homelinux.org>
libConsole/Console.java
libConsole/Getch.java
libConsole/Makefile
--- a/libConsole/Console.java
+++ b/libConsole/Console.java
@@ -1,6 +1,21 @@
 public class Console {
     public static native int getch ();
+    private static void help () {
+        String p = System.getProperty ("java.library.path");
+        String[] msg = p.split (":");
+        System.err.printf ("Console Error:\n");
+
+        for (int i = 0; i < msg.length; i++)
+            System.err.printf ("\t%s\n", msg[i]);
+        System.exit (-1);
+    };
+
     static {
-        System.loadLibrary ("Console");
-    }
+        try {
+            System.loadLibrary ("Console");
+        } catch (UnsatisfiedLinkError ule) {
+            System.err.println (ule.getLocalizedMessage ());
+            help ();
+        }
+    };
 }
--- a/libConsole/Getch.java
+++ b/libConsole/Getch.java
@@ -5,6 +5,7 @@
         int c;
 
         System.out.println ("Press q or ESCAPE to quit");
+
         for (;;) {
             c = Console.getch ();
             switch (c) {
@@ -14,7 +15,8 @@
                 break;
             default:
                 System.out.printf ("KEY: %c (%d)\n", c, c);
+                break;
             }
         }
     };
-};
+}
--- a/libConsole/Makefile
+++ b/libConsole/Makefile
@@ -43,5 +43,4 @@
 	LD_LIBRARY_PATH=lib $(JAVA) -cp . Getch
 
 run: Getch.class $(LIB)
-	@echo "You need to copy libConsole.(so|dll) to $(JAVA_DIR)/jre/lib/i386"
 	$(JAVA) -cp . Getch