Classpath选项适用于javac但不适用于java(Windows)

时间:2017-04-01 11:20:45

标签: java windows jar classpath javac

嗨,谢谢你的阅读,

通常使用C#后,我昨天尝试编写一些java代码来处理XML文件。我没有使用IDE或任何东西,只有Notepad ++,SDK和很多Google:)

我需要包含一些我发现的jar文件,需要将类路径设置为命令行参数来查找jar文件。这很有效:

javac -cp "./metadata-extractor-2.9.1.jar;./xmpcore-5.1.2.jar" DescribeIt.java

虽然在使用java.exe运行它时使用相同的语法,但运气不佳:

java DescribeIt -cp "./metadata-extractor-2.9.1.jar;./xmpcore-5.1.2.jar" 

导致

Exception in thread "main" java.lang.NoClassDefFoundError: com/drewimaging/ImageMetadataReader at DescribeIt.main(DescribeIt.java:53)
Caused by: java.lang.ClassNotFoundException: com.drew.imaging.ImageMetadataReader
        at java.net.URLClassLoader$1.run(Unknown Source)
        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)
        ... 1 more

当我解压缩jar文件时,它工作得很好,但我想这不是jar文件的使用方式。

可以找到代码和构建批处理文件here

非常感谢,

弗洛

1 个答案:

答案 0 :(得分:0)

哎哟!问题是参数的顺序(并添加当前目录):

java -cp "metadata-extractor-2.9.1.jar;xmpcore-5.1.2.jar;." DescribeIt