【问题标题】:Classnotfound when running program from command prompt从命令提示符运行程序时找不到类
【发布时间】:2015-12-24 19:05:38
【问题描述】:

当我从命令提示符运行我的 java 程序时,由于 ClassNotFound 错误,该程序无法运行。但是我看到的类在类路径上的一个 jar 文件中。当我从 Eclipse 运行时,同一个程序可以工作。不确定我在这里缺少什么。谢谢。我试图从我的 Windows DOS 提示符运行以下命令:C:\softwares\SpringBatchExample4>java -cp "target/dependency-jars/*:target/spring-batch.jar" org.springframework.batch.core.launch.support.CommandLineJobRunner spring/batch/jobs/job-read-files.xml readJob。我查看了目标下的一个罐子\dependency-jars 以确认 jar 文件具有 CommandLineJobRunner 类。

【问题讨论】:

  • 从 cmd 运行时可能需要提供所需的库。
  • 你能显示你正在运行的命令吗?
  • 谢谢。我试图从我的 Windows DOS 提示符运行以下命令:C:\softwares\SpringBatchExample4>java -cp "target/dependency-jars/*:target/spring-batch.jar " org.springframework.batch.core.launch.support.CommandLineJobRunner spring/batch/jobs/job-read-files.xml readJob
  • 请将命令添加到问题中并将其格式化为代码。您可以编辑问题。
  • 感谢@Stefan.Done。

标签: java spring java-batch


【解决方案1】:

从命令行运行 JAR 文件时,您有两个用于指定类路径的选项:

  1. 使用 -classpath 或 -cp 命令行参数,后跟空格和以分号 (Windows) 或冒号 (Linux/Unix) 分隔的所有类路径条目的完整路径列表;
  2. 在适用其他规则的地方使用主 JAR 清单中的 Class-Path 条目。

【讨论】:

    【解决方案2】:

    如果清单文件中没有 Main-Class 条目,您可能需要在命令行中指定包含 main 方法的类,如下所示:

    java -cp MyJar.jar com.example.MyMainClass
    

    另见:

    【讨论】:

    • 我试图执行以下命令。似乎是正确的:C:\softwares\SpringBatchExample4>java -cp "target/dependency-jars/*:target/spring-batch.jar" org .springframework.batch.core.launch.support.CommandLineJobRunner spring/batch/jobs/job-read-files.xml readJob
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-27
    • 2020-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-13
    相关资源
    最近更新 更多