2016-08-01 23 views
0

Eclipseを使用して、実行可能な.JAR(リソース、外部ライブラリ、およびアプリケーションの.classファイル)内のすべてのファイルを再編成したい。私が持っているもの実行可能ファイルでライブラリとリソースを整理する.JAR

:私が持っていると思いますどのような

My.JAR 

> folder "com" for external library 1 (com.apple.***) 

> folder "org" for external library 2 (org.javasypt.***) 

> folder "main" (package) 
    >> .class files 

> folder "resources" 
    >> all resources files (images, texts...) 

> folder "META-INF" 
    >> "MANIFEST.MF" file 

My.JAR 

> folder "main" 
    >> folder "resources" 
     >>> all resources files 

    >> folder "libraries" 
     >>> external library 1 (com.apple.***) 
     >>> external library 2 (org.javasypt.***) 

    >> .class files 

> folder "META-INF" 
    >> "MANIFEST.MF" file 

がこれを取得することが可能ですか?ありがとう!

+0

A)なぜJAR構造がどのように見えるのですか?通常、JARの唯一の "クライアント"は、それをロードしているJVMです。 B)カスタム構造がJVMによってロード可能であることを期待していますか? –

+0

A)実際には、組織化された構造を持ち、それが可能かどうかを知ることです。 b)はい、もちろん.. –

答えて

0

いいえ、JAR file specificationは特定の構造を決定します。あなたは、人間のための組織とランタイムのための組織を混在させようとしていますが、その2つの概念は異なっています。是非、あなたのソースを整理してください。ただし、ランタイム(JVM)が任意の構造を理解することは期待できません。そのため、JAR仕様構造を正確に生成するのに役立つビルドツール(gradle、maven、antなど)が存在します。

あなたの例では、orgcomは実際にはフォルダではないことを認識しています。パッケージ構造のノード(レベル)です。 mainと同じです。単なるパッケージです。

resourcesは、その名前を期待していることがわかっているコンテンツを読み込んでいるコードであれば、何でも自由に名前を付けることができるため、柔軟性があります。

META-INFであり、マニフェストファイルは仕様によって規定されており、変更または再配置することはできません。

+0

ありがとう!私はファイル/フォルダ/パッケージが何であるか、どのようなものが使用されているかを知っていますが、私はすべての構造を再構成することを期待していました..私は欲しいものを構築するためにgradenやmavenが提供するものを見ます! –

+0

あなたは答えを誤解していると思います。答えのポイントは、JAR構造体が詳細に指定されているため、それほど偏っていないことです。上記で提案したようなJARは有効なJARではなく、JVMで使用できません。 –

+0

さて、私はJARをこのようにしましょう!ありがとう! –

関連する問題