在VSCode中运行JAR包需先通过Maven或Gradle构建生成可执行JAR,再在终端使用java -jar命令运行;VSCode通过Java Extension Pack提供代码编辑、调试和构建集成支持,简化项目管理与胖JAR生成流程。

在VSCode里运行JAR包,其实更多的是指利用VSCode这个强大的开发环境来构建你的Java项目,最终生成一个可执行的JAR文件,然后通过系统的Java运行时环境(JRE)在终端中执行它。VSCode本身不会像运行
.java
对于VSCode中的Java项目,要实现打包并执行JAR,我们通常遵循一套行之有效的流程。这不仅关乎技术操作,更是一种对项目生命周期管理的理解。
首先,确保你的VSCode环境已为Java开发做好准备。这意味着你需要安装Java Extension Pack,它包含了语言支持、调试器、Maven/Gradle等核心组件。没有这些,就像厨师没有刀具,寸步难行。
接下来,无论是新建一个Maven或Gradle项目,还是导入现有项目,VSCode都会通过其扩展为你提供强大的支持。以Maven为例,你的项目结构中会有一个
pom.xml
立即进入“豆包AI人工智官网入口”;
立即学习“豆包AI人工智能在线问答入口”;
假设你有一个简单的Java应用,入口点在
src/main/java/com/example/Main.java
package com.example;
public class Main {
public static void main(String[] args) {
System.out.println("Hello from a JAR package!");
if (args.length > 0) {
System.out.println("Received argument: " + args[0]);
}
}
}要把它变成一个可运行的JAR,我们需要配置
pom.xml
maven-jar-plugin
maven-shade-plugin
一个基础的
pom.xml
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>com.example.Main</mainClass> <!-- 指定你的主类 -->
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>在VSCode中,打开集成终端(`Ctrl+``),导航到你的项目根目录,然后执行Maven的打包命令:
mvn clean package
这个命令会清理之前的构建产物,然后编译你的代码,并将结果打包成JAR文件。成功后,你会在项目的
target/
your-project-name-1.0-SNAPSHOT.jar
有了JAR文件,就可以在终端中运行它了。同样在终端中,执行:
java -jar target/your-project-name-1.0-SNAPSHOT.jar
如果你需要传递参数,就像这样:
java -jar target/your-project-name-1.0-SNAPSHOT.jar "World"
这样,你的Java应用就通过JAR包的形式成功运行起来了。整个过程,VSCode是你的得力助手,但最终的执行者,依然是底层的Java运行时环境。
在运行JAR包的过程中,我们总会遇到一些意料之外的问题,这很正常。我个人就没少踩坑,尤其是在处理依赖和主类配置的时候。理解这些错误背后的逻辑,远比记住解决方案本身更重要。
最常见的一个问题是
NoClassDefFoundError
ClassNotFoundException
classpath
classpath
java -cp "lib/*:your-project.jar" com.example.Main
java -cp "lib/*;your-project.jar" com.example.Main
classpath
另一个常见错误是
Error: Main method not found in class com.example.Main, please define the main method as: public static void main(String[] args)
MANIFEST.MF
META-INF/
Main-Class
pom.xml
build.gradle
mainClass
还有一种情况是,程序运行起来了,但行为异常,或者报一些奇怪的运行时错误。
java -version
javac -version
有时候,JAR文件本身可能在传输或下载过程中损坏,导致无法运行。
最后,权限问题。在某些操作系统或受限环境中,你可能没有执行JAR文件的权限。
chmod +x your-project.jar
java -jar
VSCode的Java生态圈,可以说做得相当出色,它极大地简化了从代码编写到JAR包生成的整个过程。我个人觉得,如果没有这些扩展,在VSCode里搞Java开发会是件很痛苦的事情,它让VSCode从一个轻量级编辑器蜕变成了一个功能强大的IDE。
首先,Java Extension Pack是核心。它包含了:
pom.xml
build.gradle
clean
compile
package
通过这些扩展,VSCode将原本分散的步骤整合在一起:
pom.xml
build.gradle
可以说,VSCode的Java扩展将复杂的Java开发流程模块化、可视化,让开发者能够更专注于业务逻辑的实现,而不是被工具链的繁琐配置所困扰。对我而言,这种集成度是选择VSCode进行Java开发的重要原因之一。
构建一个包含所有依赖的“胖JAR”(也常被称为“uber JAR”或“executable JAR”),是Java应用部署中非常常见的需求。它的核心优势在于自包含性:你只需要一个JAR文件,就能在任何安装了Java运行时环境的机器上运行你的应用,无需手动管理复杂的
classpath
在VSCode环境中,我们主要通过配置项目的构建工具来实现这一点。对于Maven项目,最常用的插件是
maven-shade-plugin
maven-assembly-plugin
maven-shade-plugin
以下是一个使用
maven-shade-plugin
pom.xml
<build>
<plugins>
<!-- 确保你的Java编译版本正确 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source> <!-- 或你的JDK版本,如11, 17 -->
<target>1.8</target> <!-- 保持与source一致 -->
</configuration>
</plugin>
<!-- maven-shade-plugin 配置 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.4</version> <!-- 使用较新的版本 -->
<executions>
<execution>
<phase>package</phase> <!-- 在package阶段执行 -->
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<!-- 指定主类,这是运行胖JAR的关键 -->
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.example.Main</mainClass> <!-- 替换为你的主类全限定名 -->
</transformer>
<!-- 如果有多个jar文件包含相同的服务提供者文件,需要合并 -->
<transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
</transformers>
<!-- 可选:排除不需要打包进来的依赖,减少JAR大小 -->
<!-- <filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters> -->
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>配置解析:
maven-compiler-plugin
maven-shade-plugin
executions
package
shade
transformers
shade
ManifestResourceTransformer
META-INF/MANIFEST.MF
mainClass
ServicesResourceTransformer
META-INF/services
filters
*.SF
*.DSA
*.RSA
构建流程:
在VSCode中,将上述配置添加到你的
pom.xml
<build>
保存
pom.xml
打开VSCode的集成终端(`Ctrl+``)。
在项目根目录执行Maven打包命令:
mvn clean package
执行成功后,你会在
target/
your-project-name-1.0-SNAPSHOT.jar
shade
your-project-name-1.0-SNAPSHOT.jar
finalName
original-your-project-name-1.0-SNAPSHOT.jar
shade
target/
运行胖JAR:
java -jar target/your-project-name-1.0-SNAPSHOT.jar
这个命令会直接运行你的应用,因为胖JAR已经包含了所有运行时所需的依赖和主类信息。这种方式极大地简化了部署和分发,避免了依赖地狱。对于Gradle项目,你可以使用
shadowJar
以上就是VSCode怎么运行Jar包_VSCodeJava项目打包与执行JAR教程的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号