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

Posted

技术标签:

【中文标题】如何在命令提示符下运行 Java 程序【英文标题】:How to run Java program in command prompt 【发布时间】: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 类文件。

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

【问题讨论】:

您是否设置了课程路径? 感谢大家帮助我,它对我来说很好...... 【参考方案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 **** 如果我在命令提示符下使用上述命令,我可以运行它。但我无法传递参数

以上是关于如何在命令提示符下运行 Java 程序的主要内容,如果未能解决你的问题,请参考以下文章

如何使用java程序运行命令提示符命令?

命令行窗口内,如何执行一个程序并等待结果

为啥编写的java源程序,在命令提示符里运行不出来

安装完MYSQL后使用命令行运行mysqld提示mysqld不是内部或外部命令

Java环境变量已设置,在命令提示符中输入Java可以运行,但Javac不能运行

在命令提示符窗口里输入javac有反应,但是输入java不能运行?