【问题标题】:How to run Java program in command prompt如何在命令提示符下运行 Java 程序
【发布时间】:2012-08-11 13:01:20
【问题描述】:

我创建了一个 Java 项目来调用 Web 服务。 它有一个主 java 文件和另一个类文件。 我已经为 HTTP 客户端使用了一些 jar 文件。
在 Eclipse 中它运行良好。 我需要通过传递一些参数在命令提示符下运行 Java 程序。
在命令提示符中,我转到包含主 java 和子类 java 文件的 src 文件夹并给出以下命令

javac mainjava.java    

我收到以下错误

ma​​injava.java:14:找不到符号
符号:类子类

这里的 SubClass 是我另一个用来调用 web 服务的 java 类文件。

如何通过传递参数来运行程序?

【问题讨论】:

  • 您是否设置了课程路径?
  • 感谢大家帮助我,它对我来说很好......

标签: java compilation command-line-arguments command-prompt


【解决方案1】:

你需要做的就是:

  • 如果有的话,使用类路径构建 mainjava 类(可选)

    javac *.java [ -cp "wb.jar;"]

  • 创建 Manifest.txt 文件,内容为:

    主类:mainjava

  • 打包mainjava类的jar文件

    jar cfm mainjava.jar Manifest.txt *.class

然后您可以使用类路径(可选)从 cmd 运行此 .jar 文件并为其添加参数。

java [-cp "wb.jar;"] mainjava arg0 arg1 

HTH。

【讨论】:

    【解决方案2】:

    javac 是 Java 编译器。 java 是 JVM,也是你用来执行 Java 程序的东西。您不执行.java 文件,它们只是源文件。 大概有.jar某处(或包含.class文件的目录)是在Eclipse中构建它的产物:

    java/src/com/mypackage/Main.java java/classes/com/mypackage/Main.class java/lib/mypackage.jar

    从目录java执行:

    java -cp lib/mypackage.jar Main arg1 arg2

    【讨论】:

    • 这是我的文件夹结构 webcall/src/main.java---- webcall/src/Sub.java----- webcall/extjarfiles/httpcore.jar----- webcall /extjarfiles/httpclient.jar-----
    • 是否有webcall/classeswebclass\lib 文件夹?
    • 我使用了 javac -cp extjarfiles/AllJarFiles main.java ------ 编译成功但运行项目出错
    • 您需要同时编译Sub.javamain.java,并找到Sub.classmain.class文件所在的目录。
    • 我编译了两个 java 文件,我收到了 17 个关于 apache 的警告 ----------"org\apache\http\conn \scheme\SchemeRegistry.class(org\apache\http\conn\scheme:Sch emeRegistry.class):警告:在类型“net.jcip.annotations.GuardedBy”中找不到注释方法“value()”:类文件net.jcip.annotations.GuardedBy 未找到 org\apache\http\impl\client\AbstractHttpClient.class(org\apache\http\impl\client :AbstractHttpClient.class):警告:在输入“net.jcip.annotations.GuardedBy””
    【解决方案3】:

    javac 只编译代码。您需要使用 java 命令来运行代码。错误是因为您的类路径不包含类 Subclass 当您尝试编译它时。您需要在 javac 命令中使用 -cp 变量添加它们

    java -cp classpath-entries mainjava arg1 arg2 应该使用 2 个参数运行您的代码

    【讨论】:

      【解决方案4】:

      一个非常通用的命令提示符如何用于 java 是

      javac mainjava.java
      java mainjava
      

      你会经常看到人们这样做

      javac *.java
      java mainjava
      

      至于由于类路径中缺少路径而可能发生的子类问题,我认为使用 -c 标志来设置它。

      【讨论】:

      • +1 表示javac *.java,这也将编译 OP 的 SubClass.java 源文件。
      【解决方案5】:

      你可以使用javac *.java 命令来编译你所有的java 源代码。您还应该了解一些关于类路径的知识,因为您似乎应该为成功编译设置适当的类路径(因为您的 IDE 使用一些库来构建 WebService 客户端)。我还可以建议您检查一下您的 IDE 用于构建项目的命令。

      【讨论】:

      • 在我的 ide 中使用这个命令运行 ***** "C:\Program Files\Java\jre6\bin\javaw.exe" -Dfile.encoding=Cp1252 -classpath "D:\ Projects\Eclipse Projects\WebServiceCall\bin;D:\Projects\Eclipse Projects\WebServiceCall\ExternalJarFiles\httpcore-4.0.jar;D:\Projects\Eclipse Projects\WebServiceCall\ExternalJarFiles\httpclient-4.0.jar;D:\Projects\ Eclipse Projects\WebServiceCall\ExternalJarFiles\commons-logging-1.1.jar;D:\Projects\Eclipse Projects\WebServiceCall\ExternalJarFiles\gson-1.7.1.jar" WSCall.ServiceCall ****
      • 如果我在命令提示符下使用上述命令,我可以运行它。但我无法传递参数
      猜你喜欢
      • 1970-01-01
      • 2013-03-28
      • 1970-01-01
      • 2021-08-28
      • 1970-01-01
      • 2020-06-13
      • 1970-01-01
      • 2020-08-13
      • 2019-01-11
      相关资源
      最近更新 更多