在Jar文件中运行类

jim*_*jim 163 java command-line jar

如果你有一个名为jar文件myJar.jar位于/ MyFolder中,你要使用称为类myClass的话,你怎么去了解通过命令行做什么呢?

我以为会进入目录然后说java -cp myJar.jar.myClass但是没有用.任何帮助,将不胜感激.

Bit*_*map 238

使用java -cp myjar.jar com.mypackage.myClass.

  1. 如果班级不在包中那么简单java -cp myjar.jar myClass.

  2. 如果您不在所在的目录中myJar.jar,那么您可以:

    1. 在Unix或Linux平台上:

      java -cp /location_of_jar/myjar.jar com.mypackage.myClass

    2. 在Windows上:

      java -cp c:\location_of_jar\myjar.jar com.mypackage.myClass

  • 只是添加它 - 如果com.mypackage.myClass(在上面的例子中)依赖于其他jar,运行如下:java -cp dependentfile1.jar; dependentfile2.jar; c:\ location_of_jar\myjar.jar com. mypackage.myClass (8认同)
  • 如果这不起作用,可能需要注意的故障路径:确保您的类的完全限定路径与您的jar文件中的完全匹配.如果你解压缩-l /location-of-jar/myjar.jar,并看到除com/mypackage/myClass之外的其他内容,这就是你的问题.(例如,如果你看到bin/com/mypackage/myClass,你应该使用cd进入bin来构建你的jar文件;你所拥有的东西将不起作用.) (2认同)

Ric*_*ell 21

你要:

java -cp myJar.jar myClass
Run Code Online (Sandbox Code Playgroud)

文档给出了下面的例子:

C:> java -classpath C:\java\MyClasses\myclasses.jar utility.myapp.Cool
Run Code Online (Sandbox Code Playgroud)


小智 17

Java中有两种类型的JAR文件:

  1. 包含清单文件的Runnable/Executable jar文件.要运行Runnable jar,您可以使用java -jar fileName.jarjava -jar -classpath abc.jar fileName.jar

  2. 简单的jar文件,不包含清单文件,因此您只需通过提供其路径来运行主类 java -cp ./fileName.jar MainClass


小智 5

假设您位于文件所在的目录中myJar.jar并且myClass有一个public static void main()方法:

您使用以下命令行:

java -cp ./myJar.jar myClass
Run Code Online (Sandbox Code Playgroud)

哪里:

  1. myJar.jar当前路径中,请注意.在大多数系统上不在当前路径中.一个完全合格的路径此处优选为好.

  2. myClass是类的完全限定的包路径,该示例假定它myClass默认包中,这是不好的做法,如果它在嵌套包中,它将是com.mycompany.mycode.myClass.