当前位置:首页 > Java

java –jar 如何使用

2026-03-24 22:24:31Java

java -jar 的基本用法

java -jar 用于运行打包为可执行 JAR 文件的 Java 应用程序。命令格式如下:

java -jar <jar文件名>.jar

确保系统已安装 Java 环境(JDK 或 JRE),并通过 java -version 验证版本兼容性。

指定 JAR 文件的路径

如果 JAR 文件不在当前目录,需提供完整或相对路径:

java -jar /path/to/yourfile.jar

或相对路径(例如上级目录):

java -jar ../project/yourfile.jar

传递命令行参数

向 JAR 中的 main 方法传递参数时,在 JAR 文件名后添加参数:

java -jar app.jar arg1 arg2

程序内部通过 String[] args 接收这些参数。

内存与 JVM 参数配置

通过 JVM 参数调整运行配置,例如堆内存大小:

java -Xmx512m -Xms256m -jar app.jar
  • -Xmx512m:设置最大堆内存为 512MB。
  • -Xms256m:设置初始堆内存为 256MB。

其他常用参数:

  • -D<property>=<value>:设置系统属性(如 -Dconfig.file=/path/config.properties)。

依赖项与类路径问题

如果 JAR 依赖外部库,需通过 -cp-classpath 指定依赖路径:

java -cp app.jar:lib/* com.example.Main
  • lib/* 表示加载 lib 目录下所有 JAR 文件。

对于可执行 JAR,确保 MANIFEST.MF 中已正确配置 Class-Path

常见问题排查

  1. 无主清单属性
    错误提示 no main manifest attribute 表示 JAR 的 MANIFEST.MF 缺少 Main-Class 定义。需重新打包并指定入口类。

  2. 版本不兼容
    使用 -version 确认 Java 版本与 JAR 编译版本匹配。例如,编译为 Java 11 的 JAR 不能在 Java 8 中运行。

  3. 权限问题
    在 Linux/macOS 系统下,确保 JAR 文件有执行权限:

    java –jar 如何使用

    chmod +x app.jar

其他注意事项

  • 使用 -verbose 参数可输出详细类加载信息,辅助调试。
  • 通过 -jar 运行时,-cp 参数会被忽略,依赖项需在 MANIFEST.MF 中声明。
  • 如需调试,添加 JVM 参数 -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 启用远程调试。

分享给朋友:

相关文章

java如何输出数组

java如何输出数组

输出数组的方法 在Java中,输出数组内容有多种方式,具体取决于数组类型和输出格式需求。以下是几种常见的方法: 使用Arrays.toString()方法 适用于一维数组,直接调用Arrays.to…

java如何生成随机数

java如何生成随机数

生成随机数的方法 在Java中生成随机数可以通过多种方式实现,以下是几种常见的方法: 使用Math.random()方法 Math.random()方法返回一个double类型的伪随机数,范围在[0…

如何编译java

如何编译java

安装JDK 确保系统已安装Java Development Kit(JDK)。可通过命令行输入 javac -version 和 java -version 验证是否安装成功。若未安装,需从Oracl…

react如何使用redux

react如何使用redux

使用 Redux 在 React 中的应用 Redux 是一个状态管理库,通常与 React 结合使用以管理全局状态。以下是具体实现步骤: 安装依赖 确保项目中已安装 redux 和 react-r…

react 如何使用 apply

react 如何使用 apply

使用 apply 方法的基本概念 在 JavaScript 中,apply 是函数原型上的方法,用于调用函数时指定 this 的值和传递参数数组。React 中可以使用 apply 来绑定组件方法或调…

java如何打印数组

java如何打印数组

打印数组的方法 在Java中,打印数组有多种方式,以下是几种常见的方法: 使用Arrays.toString()方法 这种方法适用于一维数组,可以快速将数组转换为字符串形式输出: int[] a…