You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在IntelliJ IDEA中配置Java/C++混合JNI项目及优化编辑体验?

Maven配置Java+C++ JNI项目构建(无需换Gradle)

不用折腾Gradle,Maven靠插件就能搞定JNI本地代码的编译、打包和Java代码关联,核心用maven-nar-plugin就行。

1. 调整项目结构

把C++代码和Java代码的包路径对应起来,目录结构参考:

src/
├── main/
│   ├── java/          # 你的原有Java代码目录
│   └── cpp/           # 新建的C++代码目录
│       └── com/
│           └── yourpackage/  # 和Java类同包路径,放JNI实现文件
└── pom.xml

2. Pom.xml核心配置

把下面的配置加到你的pom.xml的<build>标签里,根据你的系统和项目调整参数:

<build>
    <plugins>
        <!-- 处理JNI本地代码的核心插件 -->
        <plugin>
            <groupId>com.github.maven-nar</groupId>
            <artifactId>nar-maven-plugin</artifactId>
            <version>3.2.3</version>
            <extensions>true</extensions>
            <configuration>
                <!-- 指定C++代码所在目录 -->
                <cppSourceDirectory>src/main/cpp</cppSourceDirectory>
                <!-- 生成动态链接库(也可以选static生成静态库) -->
                <library>
                    <type>shared</type>
                </library>
                <!-- 自动生成JNI头文件的配置 -->
                <javah>
                    <includes>
                        <include>com.yourpackage.YourJNI类名</include> <!-- 替换成你的带native方法的Java类 -->
                    </includes>
                    <outputDirectory>src/main/cpp</outputDirectory> <!-- 头文件输出到C++目录 -->
                </javah>
                <!-- 编译参数(示例是Linux,Windows/macOS自行调整编译器和参数) -->
                <cpp>
                    <compiler>g++</compiler>
                    <options>
                        <option>-std=c++11</option>
                        <option>-fPIC</option>
                    </options>
                </cpp>
                <linker>
                    <options>
                        <option>-shared</option>
                    </options>
                </linker>
            </configuration>
            <!-- 绑定到Maven编译生命周期,执行本地代码编译链接 -->
            <executions>
                <execution>
                    <id>nar-compile</id>
                    <phase>compile</phase>
                    <goals>
                        <goal>nar-compile</goal>
                        <goal>nar-link</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <!-- 配置Jar包的Manifest,让JVM能找到本地库 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <classpathPrefix>lib/</classpathPrefix>
                        <manifestEntries>
                            <!-- 指定本地库的输出路径,插件会自动适配不同平台 -->
                            <Native-Library-Path>${project.build.directory}/nar/${nar.artifactId}-${nar.version}-${nar.host}</Native-Library-Path>
                        </manifestEntries>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
    </plugins>
</build>

3. 日常构建步骤

  • 先写好带native方法的Java类,比如com.yourpackage.YourJNI.java
  • 执行命令mvn nar:javah,自动生成JNI头文件到src/main/cpp
  • 编写C++实现文件(比如YourJNI.cpp),引入生成的头文件
  • 执行mvn compile,Maven会同时编译C++生成动态库、编译Java代码
  • 运行Java程序时,要么靠Manifest里的路径自动加载,要么手动加参数-Djava.library.path=本地库目录

IntelliJ IDEA中C++编辑体验优化(JetBrains原生方案)

不用找第三方插件,新版IDEA自带基础C++支持,足够满足日常编辑需求:

1. 启用官方C/C++插件

  • 打开IDEA的设置(Windows/Linux:File→Settings;macOS:IntelliJ IDEA→Settings)
  • 进入Plugins,找到JetBrains官方的C/C++插件,确保它是启用状态
  • 重启IDEA后,C++文件会自动获得语法高亮、基础代码补全、代码格式化支持

2. 关联JNI和系统C++头文件

让IDEA能识别JNI的头文件和系统标准库:

  • 右键项目根目录→Open Module Settings
  • 进入Libraries,点+号→C/C++ Library
  • 添加JDK的JNI头目录:比如$JAVA_HOME/include,还有对应系统的子目录(Linux是$JAVA_HOME/include/linux,Windows是$JAVA_HOME/include/win32,macOS是$JAVA_HOME/include/darwin)
  • 再添加系统的C++标准库目录(比如Linux的/usr/include,Windows的MSVC头文件目录)

3. 自定义代码模板和风格

  • 在设置→Editor→Code Style→C/C++里调整缩进、换行等风格,匹配你的习惯
  • 在设置→Editor→Live Templates→C/C++里添加JNI常用模板,比如快速生成JNI方法声明,节省重复代码的时间

内容的提问来源于stack exchange,提问作者occipita

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 04:54:51