//功能:显示出Jar文件中的所有目录名和文件名,同时也显示META-INF/Manifest.mf文件中的所有属性
//用法:提供Jar文件的路径信息
//例如:Java -cp . JarFileView JarFilePath
//eg: Java -cp . JarFileView F:\JDK\1.4.2\lib\tools.jar
import java.util.Enumeration;
import java.util.Iterator;
import java.util.Set;
import java.util.jar.Attributes;
import java.util.jar.JarFile;
import java.util.jar.Manifest;
public class JarFileView
{
public JarFileView()
{
}
public static void main(String[] args) throws Exception
{
if(args.length != 1)
{
showHowToUsage();
return;
}
JarFile jar = null;
try
{
jar = new JarFile(args[0]);
}
catch(Exception e)
{
System.out.println("Error:Can't Find the " + args[0] + " File!");
return;
}
Enumeration entries = jar.entries();
//打印JAR文件中的所有目录名和文件名
while(entries.hasMoreElements())
{
Object o = entries.nextElement();
System.out.println(o);
}
// 下面这段代码可以取得META-INF/MANIFEST.MF文件中的所有属性信息
Manifest man = jar.getManifest();
Attributes attrs = man.getMainAttributes();
Set set = attrs.entrySet();
Iterator i = set.iterator();
while(i.hasNext())
{
Object o = i.next();
// 打印属性信息
System.out.println(o);
}
}
public static void showHowToUsage()
{
System.out.println("Usage: Java -cp . JarFileView <source files>");
System.out.println("Usage: Java -classpath . JarFileView <source files>");
System.out.println("");
System.out.println("<source files>:\t\tJarFile(Or ZipFile) Path & Name");
}
}
分享到:
相关推荐
在Java开发中,MANIFEST.MF文件是每个JAR文件必须包含的文本文件,它定义了程序的主要属性,如主类(Main-Class),版本信息,依赖库等。以下是MANIFEST.MF文件中常见的部分及其作用: 1. **Main-Class**: 这个条目...
2. **编写MANIFEST文件**:创建一个名为`manifest.mf`的文件,其中至少包含`Main-Class`属性,指明JAR文件的入口类。 - 示例: ``` Main-Class: test.Test ``` 3. **使用`jar`命令**:在命令行中使用`jar`工具来...
在这个命令中,cvfm是jar命令的选项,test.jar是生成的JAR文件名,manifest.mf是MANIFEST文件的名称,test是要打包的目录。 制作可执行的JAR文件包需要编辑MANIFEST文件,并使用jar命令将Java程序打包成JAR文件包。...
jar cvfm <输出Jar文件名>.jar manifest.mf <包含类文件的目录> ``` 其中,`c`表示创建新的Jar文件,`v`表示详细模式,`f`指定Jar文件名,`m`指定MANIFEST.MF文件。 **4. 运行Jar文件** - 在命令行中输入`java -...
`cal.jar`是目标JAR文件名,`META-INF/MANIFEST.MF`是清单文件路径,`com/example/*.class`是你要包含的类文件路径。 4. **运行JAR文件**: 创建完成后,可以通过以下命令运行JAR文件: ``` java -jar cal.jar ...
要使JAR文件具备可执行性,关键在于正确配置`MANIFEST.MF`中的`Main-Class`属性,该属性指定了JAR文件启动时的主类,即包含`public static void main(String[] args)`方法的类。 **步骤如下:** 1. **创建MANIFEST...
- **MANIFEST.MF**:这是JAR文件的核心元数据,包含主要类(Main-Class)和其他重要属性。 - **类文件**:.class文件,包含编译后的Java代码。 - **资源文件**:如图片、配置文件等,与Java程序一起使用。 2. **...
- **在命令行中指定主类**:如果JAR没有`MANIFEST.MF`或主类不在`MANIFEST.MF`中,可以指定主类和JAR文件: ``` java -cp myapp.jar com.example.MyApp ``` 4. **源码管理**:在开发过程中,源码通常被版本控制...
这里,`c`表示创建新的JAR文件,`m`表示使用MANIFEST.MF,`f`指定输出的JAR文件名,`com/example/*`是你要打包的类文件或目录。 4. **使用IDE打包**:大多数IDE都有内置的打包功能,可以自动处理MANIFEST.MF和类...
- 使用`-c`选项创建新的JAR文件,`-v`选项显示详细过程,`-f`选项指定JAR文件名。 可以添加`-m`选项指定清单文件,`-M`选项禁用清单文件的自动创建。 2. **Eclipse IDE** 在集成开发环境(IDE)如Eclipse中,...
JAR 文件不仅是一个压缩格式,类似于 ZIP,它还包含了一个名为 `META-INF/MANIFEST.MF` 的特殊文件,用于存储元数据,比如程序的主要类(Main-Class)等。JAR 文件的使用能够保留 Java 的跨平台特性,因为它不依赖于...
2. 使用`jar cfm jar_file_name.jar MANIFEST.MF *.class`命令,其中`c`表示创建新jar,`f`是jar文件名,`m`是清单文件名,`*.class`表示所有编译后的类文件。 将jar文件转换为exe文件,可以使用exe4j等工具。以下...
3. **打包 JAR 文件:** 使用 `jar` 命令将 `.class` 文件和 `MANIFEST.MF` 打包到 JAR 文件中。 **示例:** 假设我们有一个简单的 Java 类 `Test.java`,位于目录 `test/` 下。该类包含 `public static void main...
**示例2**:使用现有的`manifest`文件`mymanifest`将`foo/`目录下的所有文件存档到一个名为`classes.jar`的存档文件中。 ```sh jar cvfm classes.jar mymanifest -C foo/ . ``` #### 六、总结 通过本教程的学习,...
通过指定MANIFEST.MF文件,开发者可以定义JAR包的行为和属性,这对于应用程序的启动和运行至关重要。 #### 五、总结 JAR命令为Java开发者提供了强大的工具来管理和操作JAR文件。熟练掌握JAR命令及其参数对于Java...
但是与普通的ZIP文件不同的是,JAR文件具有一个特殊的目录结构,并且包含了一个名为`META-INF/MANIFEST.MF`的文件,该文件定义了JAR文件的一些基本属性。 **1. JAR文件结构** - **`META-INF/MANIFEST.MF`**:这是...
- **示例**:假设MANIFEST文件名为`manifest.txt`,输出的JAR文件名为`chess.jar`,并且当前目录下有所有`.class`文件,则命令为: ```bash jar cvmf manifest.txt chess.jar *.class ``` ##### 3.4 运行JAR文件...