没有主清单属性

1)运行一个jar,报错是   没有主清单属性。。



2)解决办法:重新构建个jar包。


 使用maven 的package的,在pom文件里加入以下配置:

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>1.2.1</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                    <configuration>
                        <transformers>
                            <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                <mainClass>com.kuliao.demo</mainClass>
                            </transformer>
                        </transformers>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>
在terminl或者doc窗口执行:mvn clean install 


3)把jar包扔到服务器上。执行

java -jar    ***.jar






### 解决 JAR 文件没有主清单属性的问题 当运行一个 JAR 文件时,如果遇到错误提示 `no main manifest attribute`,这表明该 JAR 文件的 MANIFEST.MF 文件中缺少指定主类(Main-Class)的信息[^1]。以下是详细的解决方案: #### 1. 修改 MANIFEST.MF 文件 MANIFEST.MF 是 JAR 文件中的一个重要文件,用于定义元数据信息。要解决此问题,需确保在 MANIFEST.MF 中指定了 Main-Class 属性。 可以通过手动编辑或通过工具自动生成的方式完成这一操作。下面是一个典型的 MANIFEST.MF 文件的内容示例: ```plaintext Manifest-Version: 1.0 Main-Class: com.example.MainClass ``` 其中,`com.example.MainClass` 应替换为实际程序入口类的全限定名[^2]。 #### 2. 使用命令行创建带主清单属性JAR 文件 可以使用 Java 自带的 `jar` 命令来重新打包并设置主清单属性。具体方法如下: 假设项目结构中有以下内容: - 编译后的 `.class` 文件位于某个目录下。 - 主类名为 `com.example.MainClass`。 执行以下命令以生成带有主清单属性JAR 文件: ```bash jar cfe myapp.jar com.example.MainClass -C build/classes . ``` 解释: - `-c`: 创建新的存档。 - `-f`: 指定输出的 JAR 文件名称。 - `-e`: 指定应用程序的入口点(即主类)。 - `-C`: 切换到指定目录读取文件。 这样会自动将主类写入 MANIFEST.MF 文件中[^3]。 #### 3. 使用构建工具配置主清单属性 对于现代开发环境,通常推荐使用 Maven 或 Gradle 等自动化构建工具来管理依赖和打包过程。 ##### Maven 配置 在项目的 `pom.xml` 文件中添加插件配置,例如: ```xml <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.2.0</version> <configuration> <archive> <manifest> <mainClass>com.example.MainClass</mainClass> </manifest> </archive> </configuration> </plugin> </plugins> </build> ``` 保存后运行 `mvn clean package` 即可生成包含正确主清单属性JAR 文件[^4]。 ##### Gradle 配置 在 `build.gradle` 文件中添加以下内容: ```groovy jar { manifest { attributes 'Main-Class': 'com.example.MainClass' } } ``` 之后运行 `gradle jar` 来生成目标 JAR 文件[^5]。 #### 4. 验证 MANIFEST.MF 是否正确 无论采用哪种方式生成 JAR 文件,都应验证其内部的 MANIFEST.MF 文件是否已正确定义了 Main-Class 属性。可以解压 JAR 文件查看 META-INF/MANIFEST.MF 的具体内容。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值