【问题标题】:How to run class files from jar file, where class files are in bin filder如何从 jar 文件运行类文件,其中类文件位于 bin 文件夹中
【发布时间】:2012-10-26 06:51:10
【问题描述】:

我已经使用命令jar -cvf myjar.jar javaproject创建整个Java项目的jar文件

我无法从 jar 文件运行类文件,我在命令提示符中给出了这样的提示:

D:\Automation>java -cp myjar.jar bin.Test.First

出现以下异常:

Exception in thread "main" java.lang.NoClassDefFoundError: bin/Test
Caused by: java.lang.ClassNotFoundException: bin.Test.First
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Metho
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Sourc
        at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: bin.Test.First.  Program will exit.

我在 Eclipse 中的项目结构是这样的:

javaproject 
  |
  |- src 
     |
     |- package(Test)
        |
        |- First.java     

注意:class文件来自bin文件夹,而我在Eclipse中保存了Test.java文件,其中src不是系统创建文件夹,是Eclipse创建的

【问题讨论】:

  • 包名使用小写:test.First

标签: java eclipse class exception bin


【解决方案1】:

您需要省略 bin 文件夹。使用

jar cvf myjar.jar -C bin .

创建 jar 文件。 -C 选项告诉jar 在创建 jar 文件之前进入指定的文件夹(在本例中为 bin)。

然后使用

java -cp myjar.jar Test.First

运行您的应用程序。 bin 文件夹不是 Java 包结构的一部分。

【讨论】:

    【解决方案2】:

    仅将bin 目录的内容添加到JAR。如果您感到困惑,一个简单的方法是选择 bin 目录的内容并将它们添加到 zip 存档并将扩展名更改为 jar。然后就可以使用了

    java -cp myjar.jar Test.First
    

    既然你使用的是eclipse,那就去

    File --> Export --> Runnable Jar File
    

    这样用就行了

    java -jar myjar.jar
    

    【讨论】:

      【解决方案3】:

      您有最简单的替代方法在 eclipse IDE 中创建一个 jar

      See here 并按照这些步骤创建一个 jar。

      要运行,请从命令提示符移至 bin 文件夹

       >java -cp path/to/jar/ classname
      

      【讨论】:

        猜你喜欢
        • 2013-07-04
        • 2014-12-31
        • 2013-02-04
        • 2020-07-14
        • 2014-09-20
        • 2023-04-10
        • 2012-03-13
        • 1970-01-01
        • 2014-05-18
        相关资源
        最近更新 更多