如何在命令提示符下运行 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
我收到以下错误
mainjava.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
执行:
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/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):警告:在类型“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 程序的主要内容,如果未能解决你的问题,请参考以下文章
安装完MYSQL后使用命令行运行mysqld提示mysqld不是内部或外部命令