作为实习生,我在我的项目中使用公司代码,他们通常会向我发送一个jar文件来处理.我把它添加到内置path中Eclipse,通常一切都很好,花花公子.
但是,我很想知道每个类包含什么,当我尝试打开jar文件中的一个类时,它告诉我需要一个源文件.
这是什么意思?我来自C/C++背景,所以jar类似于已编译的.o文件,我能看到的就是这些.h东西?或者jar我正在使用的文件中是否存在加密的实际代码,因此我无法读取它?
感谢所有的答案!
编辑:
谢谢,伙计们,我知道这有点像存档但我很困惑为什么当我试图打开.class文件时,我得到了一堆随机字符.当我尝试.o在C中打开文件时,输出类似,所以我只想确定.
谢谢!
Thi*_*ter 81
JAR文件实际上只是一个ZIP文件.它可以包含任何东西 - 通常它包含已编译的Java代码(*.class),但有时也包含Java源代码(*.java).
但是,Java可以被反编译 - 如果开发人员混淆了他的代码,你将无法获得任何有用的类/函数/变量名称.
Jon*_*eet 52
但是,我对每个类包含的内容感到好奇,当我尝试打开jar文件中的一个类时,它告诉我需要一个源文件.
jar文件基本上是一个zip文件,包含.class文件和可能的其他资源(以及有关jar本身的元数据).实际上很难将C与Java进行比较,因为Java字节代码比大多数二进制格式保留了更多的元数据 - 但是类文件是编译代码而不是源代码.
如果您使用zip实用程序打开jar文件或运行,jar xf foo.jar您可以从中提取文件,并查看它们.请注意,您不需要 jar文件来运行Java代码 - 类加载器可以直接从文件系统,URL或jar文件加载类数据.
the*_*ber 12
一个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
JAR代表Java ARchive.它是基于流行的ZIP文件格式的文件格式,用于将许多文件聚合为一个.尽管JAR可以用作通用归档工具,但其开发的主要动机是Java applet及其必需组件(.class文件,图像和声音)可以在单个HTTP事务中下载到浏览器,而不是打开每件作品的新连接.这大大提高了applet加载到网页上并开始运行的速度.JAR格式还支持压缩,这可以减小文件的大小并进一步缩短下载时间.此外,小程序作者可以对JAR文件中的各个条目进行数字签名,以验证其来源.
Jar 文件包含已编译的 Java 二进制类,其形式*.class可以.java通过使用某些开源反编译器反编译来转换为可读类。jar 也有一个可选的META-INF/MANIFEST.MF,它告诉我们如何使用 jar 文件 - 指定其他 jar 文件与 jar 一起加载。
| 归档时间: |
|
| 查看次数: |
109296 次 |
| 最近记录: |