2012-03-09 29 views
0

我編了一個Java項目,裝入瓶內,但我想運行它問題在創建和運行一個.jar文件

java -jar XMltoCSV.jar
Error: Could not find or load main class XMLtoCSV.class

當具有我已經創建了一個包含清單文件的一些問題:

Main-Class: xmltocsv.XMLtoCSV

(有在清單文本文件中的換行字符)

的XMLtoCSV.class確實包含main()方法。我一直在運行此代碼來創建jar文件:

jar cvf XMLtoCSV.jar Manifest.txt xmltocsv/*.class

而且我知道它的工作,因爲我得到:

jar cvfm XMLtoCSV.jar manifest.txt XMLtoCSV.class
added manifest
adding: XMLtoCSV.class(in = 4885) (out= 2492)(deflated 48%)

它爲什麼給我這個錯誤?在此先感謝您的幫助

看來我還遇到了另一個錯誤,這是什麼意思?:

Exception in thread "main" java.lang.UnsupportedClassVersionError: xmltocsv/XMLt oCSV : Unsupported major.minor version 51.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(Unknown Source) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$000(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) Could not find the main class: xmltocsv.XMLtoCSV. Program will exit.

+1

XMLtoCSV類的包是默認的嗎?即缺席?什麼是XMLtoCSV.java的第一行? – 2012-03-09 15:48:23

+0

第一行是包xmltocsv; – Shahab 2012-03-09 16:51:41

回答

3

刪除該.class在您的清單。

更新: 什麼是你的主類的package?如果您的Java文件包含語句,如

package com.google.common.base; 

位於頂部。你需要清單中的包。你的情況,這將是:

Main-Class: com.google.common.base.XMLtoCSV 

如果你的類不有這樣的包statemnent錯誤是另一回事。

(注意:com.google.common.base僅僅是當然的一個例子)

+0

我試過,我仍然得到相同的錯誤 – Shahab 2012-03-09 15:58:35

+0

它有包xmltocsv,並將其更改爲Main-Class:xmltocsv.XMLtoCSV,它現在將運行在我創建的文件夾中,但是當我嘗試將它移動到另一個位置時(只是.jar)它給了我同樣的問題 – Shahab 2012-03-09 16:42:15

0

對於一個罐子是可執行的,你必須有兩個東西在清單文件中有關:

1「主類「條目必須指向將啓動應用程序的類,即您聲明啓動應用程序的主要方法的類。在完成清單文件中的所有條目後,必須將三行留空(我從來沒有找到解釋爲什麼這是必需的,但始終適用於我的文檔)。

最簡單的清單文件看起來像下面這樣:

Manifest-Version: 1.0 
Main-Class: com.foo.FOO 

只記得最後一個條目後留下空白三行。

希望我幫上忙了。