如何在命令提示符下运行Java程序

如何在命令提示符下运行Java程序,java,compilation,command-line-arguments,command-prompt,Java,Compilation,Command Line Arguments,Command Prompt,我创建了一个Java项目来调用Web服务。 它有一个主java文件和另一个类文件。 我已经为HTTP客户端使用了一些jar文件。 在Eclipse中运行良好。 我需要通过传递一些参数在命令提示符下运行Java程序。 在命令提示符中,我转到包含主java和子类java文件的src文件夹,并给出以下命令 javac mainjava.java 我有以下错误 mainjava.java:14:找不到符号 符号:类子类 这里的子类是用于调用web服务的另一个java类文件 如何通过传递参数来运

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

javac mainjava.java    
我有以下错误

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

这里的子类是用于调用web服务的另一个java类文件


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

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

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

javac mainjava.java
java mainjava
你会经常看到有人这样做

javac *.java
java mainjava

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

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


java-cp类路径条目mainjava arg1 arg2
应使用两个参数运行代码

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/src/com/mypackage/Main.java java/classes/com/mypackage/Main.class java/lib/mypackage.jar 从目录
java
执行:

java-cp lib/mypackage.jar主arg1 arg2


您需要做的只是:

  • 使用类路径(如果有)构建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.

Dd您设置了类路径吗?感谢所有人的帮助,它对我来说工作正常…..在我的ide中,使用此命令运行*****“C:\Program Files\Java\jre6\bin\javaw.exe”-Dfile.encoding=Cp1252-classpath“D:\Projects\eclipseprojects\WebServiceCall\bin;D:\Projects\eclipseprojects\WebServiceCall\ExternalJarFiles\httpcore-4.0.jar;D:\Projects\eclipseprojects\WebServiceCall\ExternalJarFiles\httpclient-4.0.jar;D:\Projects\eclipseprojects\WebServiceCall\ExternalJarFiles\commons-logging-1.1.jar;D:\Projects\Eclipse Projects\WebServiceCall\ExternalJarFiles\gson-1.7.1.jar“WSCall.ServiceCall****如果在命令提示符下使用上述命令,我将能够运行它。但是我无法为
javac*.java
传递参数+1,这也将编译OP的SubClass.java源文件。这是我的文件夹结构webcall/src/main.java----webcall/src/Sub.java----webcall/extjarfiles/httpcore.jar----webcall/extjarfiles/httpclient.jar----是否有
webcall/classes
webclass\lib
文件夹?我使用了javac-cp extjarfiles/AllJarFiles main.java------它已成功编译,但在运行项目时出错。您需要编译
Sub.java
main.java
以及查找
Sub.class
main.class
文件所在的目录。我比较了这两个java文件,得到了17条有关apache的警告----------------------“org\apache\http\conn\scheme\SchemeRegistry.class(org\apache\http\conn\scheme:Sch emeRegistry.class):警告:在“ne t.jcip.annotations.GuardedBy”类型中找不到批注方法“value()”:找不到net.jcip.annotations.GuardedBy的类文件org\apache\impl\client\AbstractHttpClient.class”(org\apache\http\impl\client:AbstractHttpClient.class):警告:在类型“net.jcip.annotations.GuardedBy”中找不到注释方法“value()”