如何定位或自定义基于NetBeans Platform的Maven应用main方法?
定位或自定义NetBeans Platform + Maven应用的Main方法
一、为什么找不到项目内的Main方法?
NetBeans Platform应用默认使用平台核心模块提供的org.netbeans.core.startup.Main作为入口类,这个类属于NetBeans平台框架,并非你的项目代码,所以你在自己的代码中找不到Main方法是正常现象。
二、自定义Main方法实现系统属性优先设置
要在所有操作执行前完成系统属性设置,必须创建自定义Main类并将其配置为应用入口,具体步骤如下:
- 创建自定义Main类
在你的主模块(通常是命名带-app后缀、moduleType配置为app的模块)中新建Java类,示例代码:
package com.yourcompany.yourapp; public class CustomMain { public static void main(String[] args) { // 在这里优先设置所有需要的系统属性 System.setProperty("custom.property.key", "property-value"); // 调用NetBeans平台的启动入口,继续完成应用初始化 org.netbeans.core.startup.Main.main(args); } }
- 配置Maven插件指定入口类
打开主模块的pom.xml,修改nbm-maven-plugin的配置,添加mainClass参数:
<build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>nbm-maven-plugin</artifactId> <version>4.1</version> <!-- 使用你项目中对应的插件版本 --> <configuration> <!-- 指定自定义Main类的全限定名 --> <mainClass>com.yourcompany.yourapp.CustomMain</mainClass> </configuration> </plugin> </plugins> </build>
IDE运行配置(NetBeans IDE)
右键主模块 → 属性 → 运行,在“主类”下拉框中选择你创建的CustomMain类,确保IDE调试、运行时使用该入口。依赖检查
如果主模块未自动依赖NetBeans核心启动模块,需在pom.xml中添加依赖:
<dependencies> <dependency> <groupId>org.netbeans.api</groupId> <artifactId>org-netbeans-core-startup</artifactId> <version>${netbeans.version}</version> <!-- 匹配你的NetBeans Platform版本 --> <type>nbm</type> </dependency> </dependencies>
三、验证
执行mvn package打包应用,启动后会先执行自定义Main方法中的系统属性设置,再初始化NetBeans平台,确保属性设置时机早于所有业务操作。
内容的提问来源于stack exchange,提问作者user13583700
相关产品推荐
相关产品推荐

