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

使用CMakeLists编译MySQL JDBC Java代码遇问题求助

嘿,我来帮你解决用CMake编译这段Java JDBC代码的问题!首先咱们先把代码本身的小问题修正,再配置正确的CMakeLists.txt,一步步来:

第一步:修正Java代码

你的原代码存在几个无法编译/运行的问题:没有类包裹、缺少main入口方法、URL里的HTML转义字符错误,还没处理连接关闭的资源泄漏。这里是修正后的完整代码:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DBConnector {
    public static void main(String[] args) {
        Connection conn = null;
        try {
            // 把原代码里的&改成&,Java字符串不需要HTML转义
            conn = DriverManager.getConnection(
                "jdbc:mysql://localhost/test?user=root&password=wielj12903"
            );
            System.out.println("数据库连接成功!");
        } catch (SQLException ex) {
            System.out.println("SQLException: " + ex.getMessage());
            System.out.println("SQLState: " + ex.getSQLState());
            System.out.println("VendorError: " + ex.getErrorCode());
        } finally {
            // 最后记得关闭数据库连接,避免资源浪费
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}
第二步:配置CMakeLists.txt

CMake编译Java需要用到FindJava和UseJava模块,还要正确引入MySQL JDBC驱动依赖。以下是完整的CMake配置文件:

cmake_minimum_required(VERSION 3.11)
project(JavaJDBCDemo)

# 查找系统中的JDK环境
find_package(Java REQUIRED)
include(UseJava)

# 设置Java编译的版本(根据你的JDK版本调整,比如11、17)
set(JAVA_COMPILE_FLAGS "-source" "1.8" "-target" "1.8")

# 指定你的Java源文件
set(JAVA_SOURCES DBConnector.java)

# 配置MySQL JDBC驱动路径,先下载对应版本的mysql-connector-java.jar,放到和CMakeLists同目录
set(MYSQL_JDBC_JAR "${CMAKE_CURRENT_SOURCE_DIR}/mysql-connector-java.jar")

# 编译生成Jar包,同时引入JDBC驱动作为依赖
add_jar(DBConnectorJar ${JAVA_SOURCES} INCLUDE_JARS ${MYSQL_JDBC_JAR})

# 可选:添加一个run目标,方便直接用CMake运行程序
add_custom_target(run
    COMMAND ${Java_JAVA_EXECUTABLE} -cp "${CMAKE_CURRENT_BINARY_DIR}/DBConnectorJar.jar:${MYSQL_JDBC_JAR}" DBConnector
    DEPENDS DBConnectorJar
    WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)
关键注意事项
  • 确保你的系统已经安装了JDK(不是JRE),CMake能通过find_package(Java)找到它
  • 去MySQL官网下载对应你MySQL版本的JDBC驱动包(mysql-connector-java.jar),放到CMakeLists.txt同一目录下
  • 如果是Windows系统,运行命令里的类路径分隔符要改成;,而不是:
  • 确认你的MySQL服务正在运行,并且root用户的密码、数据库名test都和代码里的配置一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:46:01