制作jar包

本文介绍如何将不带包名及带包名的Java程序编译并打包成Jar文件,包括创建Manifest文件指定主类,组织目录结构,使用jar命令进行打包,最后运行Jar文件查看结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

假定有一个PrintSize.java文件, 现在要编译生成一个jar文件。


一、PrintSize.java文件中没有指定包名。

内容如下:

import java.util.*;

public class PrintSize{
  public static void main( String[] args) {
    float a = 3.14f;
System.out.println("Hello, bitsof(byte)="+Byte.SIZE);
System.out.println("Hello, bitsof(short)"+Short.SIZE);
System.out.println("Hello, bitsof(integer)"+Integer.SIZE);
System.out.println("Hello, bitsof(long)"+Long.SIZE);
System.out.println("Hello, bitsof(float)"+Float.SIZE);
System.out.println("Hello, bitsof(double)"+Double.SIZE);
  }
}

1.  $javac PrintSize.java

2. $vi manifest.mf,输入( 空格与回车是必须的)

Main-Class:<空格>PrintSize<回车>

保存退出。

3. $jar cvfm hello.jar manifest.mf *.class

4. 运行$java -jar hello.jar就可以查看结果。


二、如果PrintSize.java指定了包名

内容如下:

package hello;
import java.util.*;


public class PrintSize{
  public static void main( String[] args) {
    float a = 3.14f;
System.out.println("Hello, bitsof(byte)="+Byte.SIZE);
System.out.println("Hello, bitsof(short)"+Short.SIZE);
System.out.println("Hello, bitsof(integer)"+Integer.SIZE);
System.out.println("Hello, bitsof(long)"+Long.SIZE);
System.out.println("Hello, bitsof(float)"+Float.SIZE);
System.out.println("Hello, bitsof(double)"+Double.SIZE);
  }
}


1.  $javac PrintSize.java

2. $vi manifest.mf,输入( 空格与回车是必须的)

Main-Class:<空格>hello.PrintSize<回车>

保存退出。

3. $mkdir hello

4. mv *.class hello/

5. $jar cvfm hello2.jar manifest.mf  hello

6. 运行$java -jar hello2.jar就可以查看结果。


以上内容全部经验证。

特别强调: 

1. 【Main-Class:<空格>PrintSize<回车>】中的空格和回车必须要有。

2. 有包名,一定要与包名相同的文件夹,将class文件放入,再打包。


### 使用Dockerfile构建Java应用程序镜像 为了创建JAR的Java应用镜像,可以通过编写`Dockerfile`并利用特定指令完成这一过程。下面是一个典型的用于Spring Boot项目的`Dockerfile`模板: ```dockerfile FROM openjdk:8-jdk-alpine # 使用轻量级的基础镜像 VOLUME /tmp # 设置临时文件夹挂载点以便于日志记录等操作 ARG JAR_FILE=target/*.jar # 定义参数指向要复制进容器中的JAR文件位置 COPY ${JAR_FILE} app.jar # 将本地编译好的JAR文件拷贝至容器内,并重命名为app.jar ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] # 启动命令配置 ``` 此段脚本说明了如何通过多阶段构建减少最终生成的镜像体积[^3]。 当准备就绪后,可以在项目根目录下执行如下命令来进行镜像构建工作: ```bash docker build -t my-java-app . ``` 这会读取当前路径下的`Dockerfile`并将新创建的镜像标记为`my-java-app`[^1]。 对于那些不在默认查找范围内的自定义`Dockerfile`文档,应当指明其确切的位置给到`docker build`工具处理: ```bash docker build -f "/path/to/custom/Dockerfile" -t custom-java-app . ``` 这里展示了怎样指定不同位置上的`Dockerfile`来适应更复杂的场景需求[^2]。 值得注意的是,在实际开发过程中还可以加入更多优化措施以进一步减小所产成镜像的整体尺寸,比如采用分层缓存机制或是选用更加精简的基础映像版本如Alpine Linux作为起点[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值