在命令行中使用本机库

时间:2014-02-25 13:52:13

标签: java command-line

我用Java创建了一个使用JMagick库的应用程序。我正在使用Debian作为操作系统。

我有以下代码:

    import magick.*;
    public class HelloWorldApp {
        /**
         * @param args
         * @throws MagickException 
         */
        public static void main(String[] args) throws MagickException {
            // TODO Auto-generated method stub
            ImageInfo info = new ImageInfo("/home/bram/Downloads/verborgenlagen.jpg");
                MagickImage converter = new MagickImage(info);
                double xRes = converter.getXResolution();
                System.out.println("this is a test");
                System.out.println(xRes);
        }
    }

使用Eclipse,应用程序可以正常运行,并提供正确的输出。我现在的目标是能够通过命令行运行应用程序。

通过命令行进行编译就像魅力一样,不会出错:

bram@debian:~/workspace/HelloWorldApp/src$ javac -cp /home/bram/Downloads/jmagick-6.6.9.jar HelloWorldApp.java 

但是当我尝试使用以下命令通过命令行运行应用程序时:

java HelloWorldApp

我收到以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: magick/MagickException
Caused by: java.lang.ClassNotFoundException: magick.MagickException
    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)

任何可能导致此问题的想法?

1 个答案:

答案 0 :(得分:0)

在运行时以及编译时,需要提供带有jar文件的类路径。所以:

java -cp /home/bram/Downloads/jmagick-6.6.9.jar HelloWorldApp

应该有用。