Java 在Windows命令行上的jar文件的子包中运行类
我从eclipse导出了一个jar文件,jar文件中有各种包和带有java类文件的子包 我想在Windows的命令行上运行其中一个嵌套类文件 这个类有一个main,我正在使用下面的命令来运行它Java 在Windows命令行上的jar文件的子包中运行类,java,eclipse,command-line,jar,command-prompt,Java,Eclipse,Command Line,Jar,Command Prompt,我从eclipse导出了一个jar文件,jar文件中有各种包和带有java类文件的子包 我想在Windows的命令行上运行其中一个嵌套类文件 这个类有一个main,我正在使用下面的命令来运行它 java-classpath/example.jar示例 注意,示例是类和jar的名称 我也试着把课程的完整路径拼出来 java-classpath/example.jar.whole.path.example 如何运行示例类 编辑: 好吧,这有点愚蠢,完整路径不正确。我检查了很多次,但只有当我返回时才注
java-classpath/example.jar示例
注意,示例是类和jar的名称
我也试着把课程的完整路径拼出来
java-classpath/example.jar.whole.path.example
如何运行示例类
编辑:
好吧,这有点愚蠢,完整路径不正确。我检查了很多次,但只有当我返回时才注意到错误。没有看到您的任何代码或任何输出(提示,提示),很难说发生了什么,但这对我来说是有效的:
$ cat x/y/z/A.java
package x.y.z;
public class A
{
public static void main(String args[]) throws Exception
{
System.out.println("here in A");
}
}
$ javac x/y/z/A.java
$ jar cvf a.jar x/y/z/A.class
added manifest
adding: x/y/z/A.class(in = 459) (out= 311)(deflated 32%)
$ java -classpath a.jar x.y.z.A
here in A
如果海报或将来阅读本文的人不熟悉Unix,以$开头的行是我在shell中键入的命令,其他所有内容都是这些命令的输出。Eclipse将为您处理前三个问题,然后最后的
java-classpath a.jar x.y.z.a
是执行x.y.z.a类中主方法的命令。只要运行java-cp example.jar.whole.path.example
就可以了。如果没有,那么您的JAR文件有问题。类名必须是完全限定的(使用包名),并且指定的类必须具有正确的主方法:
public static void main(String[] args) {
}
检查你的假设是否正确。显示jar的结构,并将其与您尝试运行的内容进行比较:
jar tf example.jar
如果jar包含大量条目,您可能希望grep/查找相关类:
jar tf example.jar | find /i "Example"
最后一个带有.whole.path.example的示例看起来是正确的。“当你这样称呼它时会发生什么?”玛格德。它跑不了。我可能缺少一些其他依赖项。这是命令的输出吗<代码>java不会运行?@Marged。是的,它无法找到或加载主类。好的,因此我们将尝试获取有关
itwontrunnexception
…;-)的信息我想说的是:请在你的问题中提及完整的错误信息。并提供.jar文件的转储