2012-08-22 13 views
46

インターンとして、私は自分のプロジェクトで会社コードを使用します。彼らは通常、私にjarファイルを送ってくれます。私はそれをpathEclipseにビルドして追加します。通常はすべてがうまくやっています。jarファイルには正確に何が入っていますか?

しかし、各クラスに含まれていたことを知りたいときは、jarファイルでクラスの1つを開こうとすると、ソースファイルが必要であることがわかります。

これはどういう意味ですか?私はC/C++のバックグラウンドから来ていますので、既にコンパイルされた.oファイルに似たjarとなります。私が見ることができるのは.hのものですか?または、私が使用しているjarファイルに実際のコードがあります。これは暗号化されているため、読み込めません。

ありがとうございました!

編集:
おかげで、みんなが、私はそれがアーカイブのような一種のことを知っていたが、私は.classファイルを開こうとしたとき、私はランダムな文字列の束を持って、なぜ私はに混乱していました。 Cで.oファイルを開こうとしたときの出力が似ていたので、確認したかっただけです。
ありがとうございます!

+0

[JARファイル形式](http://en.wikipedia.org/wiki/JAR_(file_format)) – mellamokb

+0

http://en.wikipedia.org/wiki/JAR_(file_format \) – danmcardle

+2

@Blue Moon:面白いのはGoogleが私をここに導いてくれることです。 :p – user1036719

答えて

51

実行します。コンパイル済みのJavaコード(* .class)が含まれますが、Javaソースコード(* .java)も含まれることがあります。

しかし、Javaはデコンパイルすることができます。開発者がコードを難読化する場合は、便利なクラス/関数/変数名は得られません。

14

jarファイルが含まれているかを理解するための最良の方法は、これを実行することである:

ゴーラインを指令すると、JARファイルには、実際にはZIPファイルであるjar tvf jarfilename.jar

42

しかし、私は各クラスに含まれているものに興味があり、jarファイルでクラスの1つを開こうとすると、ソースファイルが必要であることがわかります。

jarファイルは基本的に.classファイルと潜在的に他のリソース(およびjar自体に関するメタデータ)を含むzipファイルです。 Javaバイトコードはほとんどのバイナリ形式より多くのメタデータを保持しているので、CとJavaを実際に比較するのは難しいですが、クラスファイルはソースコードの代わりにのコンパイル済みコードです。

zipユーティリティを使用してjarファイルを開くか、jar xf foo.jarを実行すると、そこからファイルを抽出して見ることができます。 には、 Javaコードを実行するためのjarファイルが必要です。クラスローダーは、クラス・データをファイル・システムから直接ロードすることも、URLからロードすることも、jarファイルからロードすることもできます。

+0

私はそれを解凍することができるので、アーカイブのようなものであることは分かっていましたが、.classファイルの中には読めるテキストが含まれていない理由が混乱していました。説明してくれてありがとう、私は.classは.oファイルのようなものだと思います。 – joshualan

1

.jarファイルは、.exeファイルに類似しています。 本質的に、それらは両方とも実行可能なzipファイル(異なるzipアルゴリズム)です。

jarファイルには、フォルダとクラスファイルが表示されます。各クラスファイルは.oファイルに似ており、コンパイルされたJavaアーカイブです。

jarファイルのコードを確認するには、javaデコンパイラ(http://java.decompiler.free.fr/?q=jdgui)と.jarエクストラクタ(7zipは正常に動作します)をダウンロードします。

9

jarファイルは、メタデータを含むいくつかの追加ファイルを含むzipファイルです。 (.jar拡張子にもかかわらず、それはzip形式であり、そして.zipファイルを扱うすべてのユーティリティも.jarファイルを扱うことができます。)

http://docs.oracle.com/javase/8/docs/technotes/guides/jar/index.html

Jarファイルは、ファイルの任意の種類を含めることができますアプリケーションに必要なクラスファイルとサポートする設定ファイル(プロパティ)、グラフィックス、およびその他のデータファイルが含まれています。

クラスファイルには、Java仮想マシンによって実行可能なコンパイル済みJavaコードが含まれています。

http://en.wikipedia.org/wiki/Java_class_file

+0

に標準にリンクしているため1を加算 –

3

Jarファイルには、いくつかのオープンソースの逆コンパイラを使用して逆コンパイルすることによって、それを.javaクラスを読めるように変換することができます*.classの形でコンパイルされたJavaバイナリクラスが含まれています。 jarにはオプションのMETA-INF/MANIFEST.MFがあり、jarファイルの使用方法を示します。jarファイルをロードするための他のjarファイルを指定します。

2

JD-GUIは、ブラウジングや逆コンパイルのJAR

0

.jarファイルがコンパイルされたコード(* .classファイル)が含まれ、その他のデータ/そのコードに関連するリソースのために非常に便利なツールです。複数のファイルを1つのアーカイブファイルにバンドルすることができます。メタデータも含まれています。 zipファイルなので、データを圧縮することができます。

私は有用なもののカップル。

http://www.skylit.com/javamethods/faqs/createjar.html

http://docs.oracle.com/javase/tutorial/deployment/jar/basicsindex.html

ブックのJARファイルがZIPファイル形式に基づいて、アーカイブファイルである」、と実際にOSGiのは は、多くのファイルを単一のファイルに集約することができるように、JARファイルを定義します。一般的にさらに、アーカイブに含まれるファイル は、コンパイルされたJavaクラスファイルと、画像やドキュメントなどのファイル ファイルが混在しています。さらに、この仕様では、メタデータ用のJARアーカイブ内の 標準の場所 - META-INFフォルダ - いくつかの標準的なファイル名とその中のフォーマットは、ほとんどが MANIFEST.MFファイルです。 "

5

JARはJava ARchiveの略です。一般的なZIPファイル形式に基づいたファイル形式であり、多くのファイルを1つにまとめるために使用されます。 JARは一般的なアーカイブツールとして使用することができますが、Javaアプレットとその必須コンポーネント(.classファイル、イメージ、サウンド)を、単一のHTTPトランザクションでブラウザにダウンロードすることができます各部分のための新しい接続。これにより、アプレットをWebページにロードして機能させる速度が大幅に向上します。 JAR形式では圧縮もサポートされているため、ファイルのサイズが縮小され、ダウンロード時間がさらに短縮されます。さらに、JARファイル内の個々のエントリは、アプレット作成者によってデジタル署名され、その起源を認証することができる。

0

JarファイルはZipと同じですが、実行可能ファイルがあります。

Jarに実行可能ファイルがない場合は、Zipファイルと同じになりますが、なぜJarに行くのかということを意味します。

Jarファイルには実行可能ファイルがあるため、コードに簡単にロードして他の人に簡単に転送して使用することができます。

1

ファイルの代わりに.java個のファイルがあるかどうかを確認してください。もしそうなら、ちょうどjarファイルを抽出し、eclipseでそれをインポートしてください。& eclipseからjarを作成してください。それは私のために働いた。

0

Jar(Java Archive)には.classファイルのグループが含まれています。

1.ToはJARファイル(ZIPファイル)を作成

if one .class (say, Demo.class) then use command jar -cvf NameOfJarFile.jar Demo.class (usually it’s not feasible for only one .class file) 

if more than one .class (say, Demo.class , DemoOne.class) then use command jar -cvf NameOfJarFile.jar Demo.class DemoOne.class 

if all .class is to be group (say, Demo.class , DemoOne.class etc) then use command jar -cvf NameOfJarFile.jar *.class 

2.To抽出JARファイル(解凍ファイル)

jar -xvf NameOfJarFile.jar 

コンテンツ

jar -tvf NameOfJarFile.jar 
の3.To表示テーブル
関連する問題