嗨,谢谢你的阅读,
通常使用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
非常感谢,
弗洛
答案 0 :(得分:0)
哎哟!问题是参数的顺序(并添加当前目录):
java -cp "metadata-extractor-2.9.1.jar;xmpcore-5.1.2.jar;." DescribeIt