idea中maven项目打包成jar,报错没有主清单属性解决方法

使用idea自带的打包可能会出现一下问题

在pom.xml中引入下面的依赖,即可解决

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>

然后,在idea的终端中输入命令:

mvn package

回车,即可打包完成,此时运行jar包可以成功

若之前已经打包过,则应将之前的打包clean掉,

然后再 mvn package 打包一次

若中文输出乱码,执行下面的命令

java -Dfile.encoding=utf-8 -jar redTest-1.0-SNAPSHOT.jar

若想要在cmd中输出红色:

引入依赖:

<dependencies>
        <dependency>
            <groupId>org.fusesource.jansi</groupId>
            <artifactId>jansi</artifactId>
            <version>2.3.2</version>
        </dependency>
    </dependencies>
import org.fusesource.jansi.Ansi;
import org.fusesource.jansi.AnsiConsole;
import static org.fusesource.jansi.Ansi.Color.*;
import static org.fusesource.jansi.Ansi.ansi;

public class Main {
    public static void main(String[] args) {

        // 初始化 AnsiConsole,这样你可以在 Windows 上使用 ANSI 转义序列,
        //idea控制台反而不会显示红色,若要显示,应注释掉这行代码
        AnsiConsole.systemInstall();

        System.out.println(ansi().eraseScreen().fg(RED).a("Hello, Bright Red World").reset());//红色,清屏

        System.out.println("hahahaha"); //白色

        System.out.println(ansi().fgBrightRed().a("This is bright red text").reset());//亮红色、不清屏
        // 卸载 AnsiConsole,恢复默认的控制台设置
        AnsiConsole.systemUninstall();


    }
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 当打包idea项目jar文件时,有时可能会遇到“没有清单属性”的错误提示信息。这个错误的发生是因为在打包时未设置清单属性。 在Java,每个JAR文件都有一个“清单”文件(manifest),它包含了JAR文件的元素信息。这些信息包括JAR文件的版本号、作者、类的路径、Main-Class等。其,Main-Class是一个非常重要的属性,这个属性告诉Java运行时环境(JRE)应该在哪个类查找main方法并运行程序。 如果在打包没有设置Main-Class属性,编译器就无法找到程序的入口,就会提示“没有清单属性”的错误信息。所以,打包JAR文件时一定要设置Main-Class属性,即使只有一个类也要设置。 解决没有清单属性”的问题很简单,只需要在打包时设置Main-Class属性即可。有两种方法可以设置Main-Class属性: 1.在IDE设置 在IDE打开项目的菜单栏,选择File –> Project Structure,然后点击Artifacts。在右侧的窗口选择JAR,然后在Main Class输入项目的Main类的全路径,例如com.example.MainClass。 2.手动设置清单文件 在项目的src/main目录下新建一个META-INF文件夹,在该文件夹下新建一个Manifest.mf文件。在Manifest.mf文件输入Main-Class:com.example.MainClass,即可设置Main-Class属性。 最后,重新打包项目JAR文件,运行程序即可。这样就能够顺利地解决没有清单属性”的问题了。 ### 回答2: 当使用idea项目打包jar文件时,有时会出现“没有清单属性”的错误。这是由于打包时未指定JAR文件的清单属性所导致的。 清单属性JAR文件的一个必需的元素,它指定了应该使用哪个类作为JAR文件的入口点。如果没有清单属性,Java虚拟机将无法确定应该如何运行JAR文件。 解决此问题的方法是在打包时手动添加清单属性。可以在IDEA的构建选项添加以下代码: ```java manifest { attributes 'Main-Class': 'com.example.MainClass' } ``` 其,“com.example.MainClass”应替换为项目包含main()方法的类的完整路径。通过指定这个属性JAR文件的清单属性就会被正确设置。 另外,在IDEA也可以使用插件来自动添加清单属性。在build.gradle文件添加以下代码: ```java jar { manifest { attributes 'Main-Class': 'com.example.MainClass' } } ``` 这将自动在打包时为JAR文件添加清单属性。 总之,通过手动或自动添加清单属性,可以解决没有清单属性”错误,使JAR文件能够正常运行。 ### 回答3: 当我们使用IDEA打包jar时,如果出现“没有清单属性”的错误,通常是因为没有类添加到清单文件。 在Java项目JAR文件是一种压缩格式,可以将多个类文件、资源文件、配置文件等打包到一个文件,以便于部署和发布。在这个过程,我们需要给JAR文件添加一个清单文件,它包含有关JAR文件的元信息,例如:版本号、作者、依赖关系等。其清单属性指定了JAR文件的入口点或“类”,当我们运行JAR文件时,JVM会自动加载该类,从而启动应用程序。 在使用IDEA打包JAR文件时,我们通常可以通过以下步骤来解决没有清单属性”的错误: 1. 打开Project Structure(项目结构)对话框,在左侧面板选择Artifacts(构件); 2. 在右侧面板,选择要打包的模块,并单击“+”按钮,选择JAR > From modules with dependencies(从带有依赖的模块创建JAR); 3. 填写JAR文件的名称、输出路径和清单文件名称,然后单击OK; 4. 在弹出的Edit JAR Specification(编辑JAR规范)对话框,选择Main Class(类)并指定应用程序的入口类; 5. 保存设置并重新打包JAR文件。 这样做可以确保JAR文件包含正确的清单文件和属性,从而可以功启动应用程序。除此之外,可能还需要检查项目依赖项、编译选项和运行环境等方面,以确保JAR文件能够在目标平台上正常运行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值