Java 安装JDBC驱动程序从Matlab访问Mariadb数据库
我有一个运行在Synology NAS上的Mariadb数据库,我想从安装在Mac上的Matlab访问它 以下是我遵循的步骤:Java 安装JDBC驱动程序从Matlab访问Mariadb数据库,java,matlab,jdbc,mariadb,macos-high-sierra,Java,Matlab,Jdbc,Mariadb,Macos High Sierra,我有一个运行在Synology NAS上的Mariadb数据库,我想从安装在Mac上的Matlab访问它 以下是我遵循的步骤: 下载了MariaDB连接器/j2.3.0 MariaDB-java-client-2.3.0.jar 在/Library文件夹中创建了一个文件夹MyDrivers,并将驱动程序移动到那里 将上述文件夹添加到PATH变量 将驱动程序的完整路径添加到CLASSPATH变量 根据Matlab教程,创建了一个javaclasspath.txt文件,该文件保存在Matlab pr
/Users/cedric/Library/Application Support/MathWorks/Matlab/R2018a/javaclasspath.txt
)。javaclasspath.txt文件的内容是/Library/MyDrivers/mariadb-java-client-2.3.0.jar
java-jar/Library/MyDrivers/mariadb-java-client-2.3.0.jar
执行它。这提供了:无主清单属性,位于/Library/MyDrivers/mariadb-java-client-2.3.0.jar
考虑到它可能不是一个可执行的jar,我尝试了java-cp/Library/MyDrivers/mariadb-java-client-2.3.0.jar org.mariadb.jdbc.Driver代码>
这是回报
Error: Main method not found in class org.mariadb.jdbc.Driver, please define the main method as: public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application`
关于具体做什么有什么提示吗?到目前为止,我所做的研究已经没有什么提示了
终端中env的输出
Matlab中javaclasspath('all')的输出
Matlab返回的最后一个文件是驱动程序:/Library/MyDrivers/mariadb-java-client-2.3.0.jar
系统规格:
Mac OS HighSierra 10.13.4
Matlab R2018a
Java -version:
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
驱动程序Jdbc-MariaDB-Connector/j2.3.0您尝试运行MariaDB-jar的结果表明它是正常的。java(正确地)告诉您,这个jar(或驱动程序类)可以被视为应用程序入口点
将库添加到路径中不会产生任何效果
不建议将lib添加到类路径中,但可以提供帮助;它所做的唯一一件事就是定义java虚拟机在没有提供显式类路径的情况下将使用的类路径。与几乎所有复杂的java应用程序一样,Matlab肯定有自己的类路径。我个人并不熟悉matlab是如何工作的,但我认为matlab有99%的几率完全忽略了类路径变量
这使得这个classpath.txt
文件看起来被忽略了。我不认为这是在matlab中配置类路径的方法。上的文档应该可以帮助您。至少你可以问问matlab它认为类路径是什么。最难解决的问题是不存在的问题。。。
多亏rzwitserloot确认了驱动程序安装良好,我决定一步一步走。首先设置一个小型java程序来测试驱动程序,在调整了两个数据库连接设置(端口和ip)后,该程序被证明确实很好。然后,尽管没有找到驱动程序的MATLAB消息,我还是用MATLAB做了同样的事情(编码而不是使用接口)。实际上,这也很有效。
之后,尽管有“找不到驱动程序”的消息,我还是尝试通过数据库接口进行连接。连接成功,并且“找不到驱动程序”消息消失。很高兴看到java和驱动程序端的东西已经准备好了。很高兴看到java和驱动程序端的东西已经准备好了。至于Matlab端,文件名实际上是javaclasspath.txt,根据此页面:[link]当运行javaclasspath函数(javaclasspath('all')
)时,它列出了以下目录:/Library/MyDrivers/mariadb-java-client-2.3.0.jar
;这是一个司机在其中。因此,这方面的情况似乎也很好。我肯定错过了一些东西,但仍然不知道具体是什么:-/
Java -version:
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)