上一篇                     
               
			  如何用Java运行JAR文件
- 后端开发
- 2025-06-17
- 3288
 要使用Java文件创建JAR文件,先用javac编译.java为.class文件,再用jar命令打包,要使用JAR文件,在运行Java程序时通过-classpath选项添加JAR路径。
 
在Java开发中,JAR(Java Archive)文件是打包和分发Java应用程序的标准格式,它本质上是基于ZIP格式的压缩文件,包含编译后的.class文件、资源文件及元数据,以下是详细的使用指南:
核心概念
- Java文件(.java) 
  - 人类可读的源代码文件,需编译为.class文件才能执行。
 
- 人类可读的源代码文件,需编译为
- JAR文件(.jar) 
  - 打包后的可执行单元,包含: 
    - 编译后的.class文件
- 依赖库(如其他JAR)
- 资源文件(图片、配置文件等)
- META-INF/MANIFEST.MF(清单文件,指定主类等信息)
 
- 编译后的
 
- 打包后的可执行单元,包含: 
    
完整操作流程
步骤1:编写Java文件
// HelloWorld.java
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, JAR World!");
    }
} 
步骤2:编译Java文件
javac HelloWorld.java # 生成 HelloWorld.class
步骤3:创建JAR文件
-  手动创建清单文件 
 新建manifest.txtMain-Class: HelloWorld️ 末尾必须空一行,且冒号后留空格。 
-  打包命令  jar cvfm myapp.jar manifest.txt HelloWorld.class - c:创建新JAR
- v:显示详细输出
- f:指定JAR文件名
- m:包含清单文件
 
 
 步骤4:运行JAR
 java -jar myapp.jar  # 输出 Hello, JAR World!
 
 
 进阶场景
 场景1:打包多文件项目
 假设项目结构:
 src/
  ├─ Main.java
  └─ utils/
        └─ Tool.java
 
  
  - 编译所有文件: javac -d bin src/*.java src/utils/*.java 
- 打包bin目录:jar cvfe app.jar Main -C bin .  
    - -e:直接指定主类(替代清单文件)
 
场景2:添加外部库
 若需包含第三方JAR(如lib/gson.jar):
  
  
  - 编译时指定类路径: javac -cp "lib/gson.jar" MyApp.java 
- 运行JAR时加载依赖: java -cp "myapp.jar:lib/gson.jar" Main 
 常见问题解决
 
  
  -  "no main manifest attribute"   
  
    - 原因:清单文件未指定主类 
- 修复:检查Main-Class格式或使用-e参数打包。
 
-  ClassNotFoundException   
    - 原因:JAR内缺少类文件 
- 检查:解压JAR查看内容 jar xf myapp.jar
 
-  资源文件读取失败   
    - 正确获取路径(避免绝对路径): InputStream res = getClass().getResourceAsStream("/config.properties");
 
 最佳实践
 
  
  -  构建工具自动化   
  
    - 使用Maven/Gradle管理打包(示例Maven配置): <build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>com.example.Main</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
    </plugins>
</build>运行 mvn package生成JAR。
 
 
-  验证JAR内容  jar tf myapp.jar  # 列出所有文件 
-  生成可执行JAR(含依赖)
 工具推荐:
  
    - Maven:maven-assembly-plugin
- Gradle:shadowJar插件
 
 引用说明
 
  
  - Java官方文档:JAR文件指南
- Apache Maven项目:打包插件配置
- Gradle Shadow插件:创建Fat JAR
 基于Java SE 17规范,适用于主流操作系统(Windows/macOS/Linux),操作前请确保已安装JDK并配置JAVA_HOME环境变量。
  
  
			 
			