Windows 问题上的 java -cp

标签 java batch-file classpath classnotfoundexception

有人能告诉我为什么 .bat 文件中的这个 java 命令不能在 WinXP 上运行我的 java 程序吗?我的所有 jar 文件都在一个名为 lib 的文件夹中,我的类文件在一个包文件夹 mypackage 中。

java -cp ".;.\lib\poi-3.7-20101029.jar;.\lib\jsr173_1.0_api.jar;..." mypackage.MyClassWithMain

我尝试了很多方法都没有用。一旦程序尝试使用 jar 文件中的某些类,我就会收到 ClassNotFound 错误。所以,我认为我的 -cp 选项有问题。它确实找到了我的 main()。

我想将此程序提供给对计算机一无所知的人,因此我希望他们能够双击 .bat 文件并运行。

我在 Mac 上写的一切都没有太大问题。

我敢打赌版主会因为这个问题打我的脑袋,但我确实广泛搜索了这个问题的答案。

谢谢! 约翰

抱歉,我应该输入整个命令行:

java -cp ".;.\libs\jsr173_1.0_api.jar;.\libs\poi-3.7-20101029.jar;.\libs\poi-ooxml-3.7-20101029.jar;.\libs\poi -ooxml-schemas-3.7-20101029.jar;.\libs\resolver.jar;.\libs\xbean.jar;.\libs\xbean_xpath.jar;.\libs\xmlbeans-qname.jar;.\libs\xmlpublic .jar"excelsifter.ExcelSifterController

这一切都在一条线上。我试过/而不是\,但这似乎不起作用。我在此找到的所有内容都表明对于 Windows,您必须使用反斜杠。 据我所知,所有依赖项都在这里。至少当我使用基本相同的命令时,我的 mac 不会报错。

我的 .bat 文件目录包含 excelsifter 包(一个名为 excelsifter 的文件夹)和包含所有 jar 文件的文件夹 libs。 谢谢,约翰

最佳答案

你的起始字符串对我来说看起来没问题,尝试检查你使用的库中是否有其他依赖项,如@Said 提到的。最好的方法是搜索您的 java 找不到的类,您可能会在您未包含在类路径中的其他库中找到它的声明。

关于Windows 问题上的 java -cp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5963050/

相关文章:

java - 具有两个集合的计算字段

java - JOOQ Oracle 数字精度和 Java 数字映射

java - 每次在eclipse中运行项目之前如何编译java文件

java - 如何在没有 JDK 的情况下从 tools.jar 使用 JavaCompiler

eclipse - 如何将JAR库添加到WAR项目而不面临java.lang.ClassNotFoundException?类路径 vs 构建路径 vs/WEB-INF/lib

java - 为什么我不需要在 Mac OS X 中设置 CLASSPATH 和 JAVA_HOME?

java - 如何使用jni配置spring?

batch-file - 如何在 .BAT 文件中运行多个 .BAT 文件

windows - BAT 文件 : strange SET(? ) 行为

java - 什么是 Java 类路径和路径?