【问题标题】:How to run java class from .jar archive?如何从 .jar 存档运行 java 类?
【发布时间】:2012-09-29 20:28:22
【问题描述】:

需要通过 unix 控制台从 jar 包中运行特定的 java 类。可能吗?谢谢

【问题讨论】:

标签: java unix jar console


【解决方案1】:

不能从终端调用类的特定方法。

你只能用java -cp JarFile.jar package.ClassName调用main方法

或者,如果您的 jar 包含清单文件,那么您可以这样做:java -jar pJarFile.jar

【讨论】:

  • @psed 在这种情况下,您必须使用 java -cp JarFile.jar package.ClassNamepackage.ClassName 作为包含 main 方法的类。
  • 是的,有一个带有“main”方法的类。
  • 最后。作品。非常感谢!
  • @psed 很高兴我能提供帮助。
  • 我无法找到或加载主类。我在 solaris 中运行它
【解决方案2】:

使用

java -cp myJar.jar myClass

-cp 选项在手动设置类路径时使用,即给出 jar 文件位置的完整路径,然后运行命令

例如。

C:> java -cp C:\java\MyClasses\myJar.jar myClass

【讨论】:

  • 得到“NoClassDefFoundException”
  • -cp 参数是否需要引号?
【解决方案3】:

要运行 jar 文件,您可以采用以下方法中的 任一。它们都要求您知道编写main(String[] arg) 方法的类的完全限定名。

假设你的类包含 main 方法是com.myclass.MainClass

  1. 你可以直接运行jar。将 jar 文件保存在运行此命令的位置

    java -cp yourjarfile.jar com.myclass.MainClass

  2. 创建一个包含以下内容的清单manifest.mf 文件

    Main-class: com.myclass.MainClass

现在按如下方式创建 jar 文件

   jar -cmf manifest.mf yourjarfile.jar <your class file location> 

使用以下命令运行此 jar

    java -jar yourjarfile.jar

【讨论】:

    【解决方案4】:

    是的,使用-jar参数:

    java -jar MyProgram.jar
    

    【讨论】:

    • 是的,但是 jar 包含很多其他的 java 类。
    • 可以说它不是“MyProgram.jar”而是“AllMyPrograms.jar”,我需要运行“MyFirstProgram.java”。
    【解决方案5】:

    您可以通过以下方式提取特定的类文件:

    jar xf MyProgram.jar theclass.class      
    

    它会在你的当前目录中结束

    然后运行类文件

    java theclass
    

    【讨论】:

    • 不解压可以运行吗?
    • 试试 java -jar MyProgram.jar .theclass
    猜你喜欢
    • 1970-01-01
    • 2015-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-18
    • 2013-07-04
    • 2017-09-17
    • 2013-07-15
    相关资源
    最近更新 更多