类path选项适用于javac,但不适用于java(Windows)

嗨,谢谢你的阅读,

通常与C#工作后,我试着写一些Java代码昨天处理一个XML文件。 我没有使用IDE或任何东西,只是记事本++,SDK和很多谷歌:)

我需要包含一些我发现的jar文件,需要将classpath设置为命令行参数来查找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文件的方式。

代码和生成batch file可以在这里find

非常感谢,

弗洛

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

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