Classpath 选项适用于 javac 但不适用于 java (Windows) [英] Classpath option works for javac but not for java (Windows)

查看:37
本文介绍了Classpath 选项适用于 javac 但不适用于 java (Windows)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好,感谢您的阅读,

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

after usually working with C# I tried writing some java code yesterday to process an XML file. I didn't use an IDE or anything, just Notepad++, SDK and a lot of Google :)

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

I needed to include some jar files for which I found out, that one needs to set the classpath as a command line parameter to find the jar file. That worked well:

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

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

Although using the same syntax when running it with java.exe I had less luck:

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 文件应该使用的方式.

When I unzip the jar files, it works perfectly fine, but I guess that's not the way jar files are supposed to be used.

代码和构建批处理文件可以在这里

Code and build batch file can be found here

非常感谢,

弗洛

推荐答案

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

Ouch! The problem was the order of parameters (and adding the current directory):

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

这篇关于Classpath 选项适用于 javac 但不适用于 java (Windows)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆