2011-10-24 36 views
-1

我想構建一個jar包,它的主類包不在jar的根目錄下。Java 6:構建一個jar包,其主包類不在jar的根目錄下

在應用程序中,我只是寫了一個主類

com.gmail.bernabe.laurent.test.HelloWorld 

我可以簡單地進行從Eclipse IDE中運行的JAR,但我想走得更遠了一步 =>具有最後罐子組織這樣


=> META-INF

=>庫

=====> COM

==========>的Gmail

...


相反的:

=> META-INF

==> COM

==> gmail的

...


是否有可能配置清單文件,這樣的Jar正確運行?

在此先感謝


我爲什麼要這麼做?

我想建立組織爲遵循

=> JOGL (subdirectories are JOGL just needed files) 
=> CORE (subdirectorie is the core application package) 
=> LAUNCHER (subdirectory is the custom classloader package) 
=> META-INF 
+0

發現爲什麼我得到-1?只是爲了讓我知道原因。 – loloof64

回答

2

是,也不是基於JOGL-JAR。

不,因爲你不應該這樣做:想象有人支持你的代碼。或者甚至在兩年之後,你又回到了這個項目:你看到了數百個按照JarClassLoader的定義組織的瓶子,你在幾十個「常規」項目中工作......現在,現在你看到一個JAR文件。你會期望它有一個棘手的自定義加載方案?我很懷疑。

是的,因爲您可以添加一個主類,用它來設置一個類加載器,然後在任何佈局中加載類。不過,您需要保持清單和啓動班在「適當」的地方。

的類加載該教程可以在http://java.sun.com/developer/onlineTraining/Security/Fundamentals/magercises/ClassLoader/help.html

+0

經過更新以提供「否」部分的基本原理:) – alf

+1

它在公約和規範中飛行。與許可沒有任何關係。使用自定義類加載器只是爲了讓非正統的jar內容佈局更費力。想要按照自己的方式行事沒有任何問題,但如果沒有其他人似乎這樣做,那麼你就不得不問自己這個問題,如果它可能沒有意義。編輯:這是爲了迴應現在已經消失的評論。 –

+0

所以我想做什麼,沒有任何自定義類加載器,沒有任何類的根包(「適當」的地方)是不可能的。 – loloof64