如何从jar文件运行类文件,其中类文件位于bin文件夹中

时间:2012-10-26 06:51:11

标签: java eclipse class exception bin

我已经使用命令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     

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

3 个答案:

答案 0 :(得分:0)

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

jar cvf myjar.jar -C bin .

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

然后使用

java -cp myjar.jar Test.First

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

答案 1 :(得分:0)

你最简单的&在eclipse IDE

中创建jar的替代方法

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

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

 >java -cp path/to/jar/ classname

答案 2 :(得分:0)

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

java -cp myjar.jar Test.First

由于你正在使用eclipse,只需转到

File --> Export --> Runnable Jar File

这种方式只需使用

java -jar myjar.jar