25

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

javac mainjava.java    

我收到以下错误

mainjava.java:14:找不到符号
符号:类子类

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

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

4

5 回答 5

23

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 主要 arg1 arg2

于 2012-08-15T08:04:28.637 回答
15

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

javac mainjava.java
java mainjava

你会经常看到人们在做

javac *.java
java mainjava

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

于 2012-08-15T08:02:26.223 回答
3

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

于 2012-08-15T08:00:11.753 回答
2

您需要做的就是:

  • 如果有的话,使用类路径构建 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。

于 2012-08-15T08:15:53.863 回答
1

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

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

于 2012-08-15T08:02:30.510 回答