Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 安装JDBC驱动程序从Matlab访问Mariadb数据库_Java_Matlab_Jdbc_Mariadb_Macos High Sierra - Fatal编程技术网

Java 安装JDBC驱动程序从Matlab访问Mariadb数据库

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

我有一个运行在Synology NAS上的Mariadb数据库,我想从安装在Mac上的Matlab访问它

以下是我遵循的步骤:

  • 下载了MariaDB连接器/j2.3.0 MariaDB-java-client-2.3.0.jar
  • 在/Library文件夹中创建了一个文件夹MyDrivers,并将驱动程序移动到那里
  • 将上述文件夹添加到PATH变量
  • 将驱动程序的完整路径添加到CLASSPATH变量
  • 根据Matlab教程,创建了一个javaclasspath.txt文件,该文件保存在Matlab prefdir文件夹中(
    /Users/cedric/Library/Application Support/MathWorks/Matlab/R2018a/javaclasspath.txt
    )。javaclasspath.txt文件的内容是
    /Library/MyDrivers/mariadb-java-client-2.3.0.jar
  • 当我尝试在Matlab中配置数据源时,我收到一条错误消息“在MatlabJava类路径上找不到jdbc驱动程序”。我认为第3点、第4点和第5点都做得很好(参见下面的输出)

    所以我的问题是关于驱动程序的.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)