我无法在我的 macbook air m1 上安装 PostgreSQL 的 JDBC 驱动程序

Posted

技术标签:

【中文标题】我无法在我的 macbook air m1 上安装 PostgreSQL 的 JDBC 驱动程序【英文标题】:I can't install JDBC driver for PostgreSQL on my macbook air m1 【发布时间】:2022-01-03 04:32:43 【问题描述】:

我尝试在我的 Macbook Air M1 上安装 PostgreSQL 的 JDBC 驱动程序,但没有安装。它说“Safari 无法打开文件‘postgresql-42.3.1.jar’,因为没有可用的应用程序可以打开它。”我如何在我的 Mac 上运行它。 JDBC installation error on mac m1

【问题讨论】:

您不需要“安装”它。只需将文件复制到某处并将其添加到 Java 应用程序的类路径中即可。 您是否安装了Java(JDK)?这似乎是M1 芯片正在进行的工作。见Java/JDK for the Apple M1 chip。 @AdrianKlaver 不,不是正在进行中的工作,与任何其他 Java 实现相比都不是。 Apple 是 OpenJDK 项目的活跃和正式成员。从 Java 17 开始,带有 M1 芯片的 Mac 计算机是 OpenJDK 项目完全支持的几个平台之一。请参阅JEP 391: macOS/AArch64 Port。 macOS/AArch64 的早期 Java 版本由 Azul Systems 等多家供应商提供。 为什么涉及到 Safari?您不使用网络浏览器来操作JDBC driver。 【参考方案1】:

只需将 JDBC 驱动程序的 JAR file 作为依赖项包含在您的 Java 应用程序中,就像任何其他库一样。

如果使用 Maven 或 Gradle 等依赖管理工具(强烈推荐),请为 JDBC 驱动程序添加配置条目。该工具将查找、下载 JDBC 驱动程序的 JAR 文件并将其放入您的项目中。 如果手动管理依赖项,请下载驱动程序并将其放置在项目的正确文件夹中。

在部署时,JDBC 驱动程序会通过 Java 中的 SPI 工具自动注册到 JVM。只要驱动程序出现在 Java Classpath 上,它就可以工作。

Web 应用服务器(例如 Apache Tomcat)是一个例外。在这种情况下,您可能需要手动将 JDBC 驱动程序安装到该服务器的特殊位置,而不是在您的应用程序中。这已在 Stack Overflow 上多次介绍,因此请搜索以了解更多信息。

来自here 的驱动程序PostgreSQL JDBC Driver 42.3.1 是Type 4 driver。这意味着它完全是用 Java 编写的。因此,该驱动程序将在任何能够运行 JVM 的机器上运行。一台带有Apple M1 芯片的Mac 计算机在这方面并没有什么特别之处,并且能够与 Postgres 服务器建立 JDBC 连接。

您从 Safari 报告错误消息的事实非常令人困惑。 Safari 网络浏览器与运行 Java 应用程序或 JDBC 驱动程序无关。

【讨论】:

是否有任何视频教程可供我学习正确安装它,因为我目前在 CSE 的第一年并且对技术知识不太了解.....我有一个未来几周的 Java 考试,其中包括主题“如何使用 java 和使用 jdbc 的数据库”。请帮帮我 @ADITYARAJ 不涉及“真正的”安装。您下载 JAR 文件,并将其添加到您正在使用的应用程序的类路径或模块路径中(或者更好的是,使用 Maven 或 Gradle 为您完成)。关于如何管理自己的 Java 应用程序的类路径,在任何关于 Java 的优秀介绍性文本中都有介绍。对于其他应用程序,您可能需要查阅他们的文档以了解如何管理类路径。 @ADITYARAJ 鉴于这是给学校的,如果你有问题,你应该先问你的老师/讲师或助教。 @MarkRotteveel 非常感谢先生.....我已经成功建立了PostgreSQL和JAVA之间的连接。我刚刚在库中添加了 .jar 文件。

以上是关于我无法在我的 macbook air m1 上安装 PostgreSQL 的 JDBC 驱动程序的主要内容,如果未能解决你的问题,请参考以下文章

在新的 MacBook Air M1 上安装 Pandas 时遇到问题 [关闭]

安装 python@3.7 MacBook Air m1 问题

找不到捆绑的 Java 版本。 MacBook Air M1

为 App Academy 的新 Macbook Air (M1) 安装正确的 Ruby / benz

MacBook Air M1 行动起来

MacBook Air M1 运行 go test