【问题标题】:Cannot start Weka - getting error无法启动 Weka - 出现错误
【发布时间】:2021-04-21 20:07:20
【问题描述】:

我已成功安装 Weka,需要它连接到我们的 MS SQL Server。但是当我启动 Weka 时,出现以下错误:

# java -Xmx1000M -jar weka.jar
---Registering Weka Editors---
Trying to add database driver (JDBC): jdbc.idbDriver - Error, not in CLASSPATH?

在哪里可以获得 .jar 或 lib 文件,而我只有以下列出的 .jar 文件:

# find . -name "*.jar"
./weka.jar
./weka-src.jar
./remoteExperimentServer.jar
[weka-3-6-12]#

我还需要安装什么才能成功运行 Weka。

根据下面的评论,这是我的“weka/experiment/DatabaseUtils.props”文件的内容:

# grep -i idbDriver weka/experiment/DatabaseUtils.props

#jdbcDriver=RmiJdbc.RJDriver,jdbc.idbDriver
#jdbcDriver=jdbc.idbDriver
#jdbcDriver=RmiJdbc.RJDriver,jdbc.idbDriver,org.gjt.mm.mysql.Driver,com.mckoi.JDBCDriver,org.hsqldb.jdbcDriver

由于每一行都以带有 jdbc.idbDriver 的“#”开头,我相信这些行是注释。我的理解是否正确 - 我也相信可以忽略此警告/错误。

但是请告诉我需要进行哪些更改才能将 Weka 连接到 MS SQL 数据库?

【问题讨论】:

标签: java weka


【解决方案1】:

要通过 weka 启用与 MSSQL 的连接,请执行以下操作: (如果您在 Windows 上,请执行 this

  1. 创建启动脚本
  2. 创建一个 DatabaseUtils.props 文件

这是我的启动脚本。注意 $CP 变量是如何设置的。这包含 jtds.jar 文件的完整路径,该文件包含 MSSQL 的 jdbc 驱动程序。

#!/bin/bash
WEKA_HOME=/opt/smallapps/weka-stable/weka
export WEKA_JAR=$WEKA_HOME/weka.jar
export PATH=$WEKA_HOME:$PATH
CP="/usr/share/java/:/opt/dbvis9/jdbc/jtds/jtds.jar:/opt/database/sqlite/sqlite-jdbc.jar:$WEKA_JAR"
echo "used CLASSPATH: $CP"
DIR=/opt/smallapps/weka-stable/data/
echo "changing to '$DIR'"
cd "$DIR"
export WEKA_HOME=$DIR
# start Weka's small GUIChooser window
java -cp $CP -Xmx500m weka.gui.GUIChooser &

这是我的 DatabaseUtils.props 文件的开始,已删除 cmets,存储在其默认位置。 我的完整路径:/opt/smallapps/weka/wekafiles/DatabaseUtils-mssql.props, 链接到/opt/smallapps/weka/wekafiles/DatabaseUtils.props

jdbcDriver=org.sqlite.JDBC,net.sourceforge.jtds.jdbc.Driver

jdbcURL=jdbc:jtds:sqlserver://dbhost.mycompany.com:1433;DatabaseName=master

varchar=0
float=2
numeric=2
tinyint=3
int=5
bigint=6
nvarchar=9
nchar=9
char=9
decimal=2
bit=1
smallint=5
date=8

这里我添加了一个带有可点击按钮的屏幕截图。

请注意,没有“连接成功”消息。控制台窗口中只会出现黄色三角形消息。 (红色 X - 连接不成功时的图标)

Microsoft here 的连接 URL 文档

【讨论】:

  • 我很抱歉 - 但现在我面临的问题是我无法在 weka 输入文本框中编辑或输入任何字符 - 我已经通过 Windows X Server 工具声明了 weka - Xming - weka 安装在Linux 机器 - 应用程序运行良好,但我无法输入数据库连接的用户/密码 - 它还指出 - 异常:java.sql.SQLException:找不到适合 jdbc:microsoft:sqlserver://xx.xx 的驱动程序.x.xx:1433
  • OK 我将我的 weka/experiment/DatabaseUtils.props 更改为 jdbcDriver=com.microsoft.jdbc.sqlserver.SQLServerDriver 并重新启动工具我收到以下错误:尝试添加数据库驱动程序(JDBC ): com.microsoft.jdbc.sqlserver.SQLServerDriver - 错误,不在 CLASSPATH 中?
  • 不知道怎么连接MSSQL驱动。具体来说,我不知道它在哪个jar文件中。找到它,然后用你的jar路径替换jtds.jar的完整路径。您可以使用java -cp <yourMSSQLserverJDBC.jar> weka.jar 来启动 weka,而不是使用我的 shell 脚本
  • 谢谢我现在收到以下错误:[weka-3-6-12]# java -Xmx1000M -jar weka.jar -cp sqljdbc41.jar ---注册 Weka 编辑器---尝试添加数据库驱动程序 (JDBC):com.microsoft.jdbc.sqlserver.SQLServerDriver - 错误,不在 CLASSPATH 中? java.lang.NullPointerException weka.gui.GUIChooser.showExplorer(GUIChooser.java:1247) weka.gui.GUIChooser.main(GUIChooser.java:1528) 在 weka.gui.GUIChooser.showExplorer(GUIChooser.java:1247) 在 weka .gui.GUIChooser.main(GUIChooser.java:1528) 我已经从MS网站下载了sqljdbc41.jar
  • 将sqljdbc41.jar的完整路径添加到-cp参数
【解决方案2】:

您可以尝试以下步骤。它也适用于我,但适用于 MySQL。在 MSSQL 中可能类似。我尝试为 MSSQL 进行编辑。

1- 从this link 下载所需的连接器。

2- 根据您的 Java 版本“mssql-jdbc-9.2.1.jre8.jar、mssql-jdbc-9.2.1.jre11.jar、mssql-jdbc-9.2.1.jre15.jar”(这些是“sqljdbc_9_2\enu”文件夹中包含)将文件复制到“Weka”文件夹。您可以全部复制。

3- 然后您必须在“环境变量”中以大写字母输入 CLASSPATH 值。如果您使用的是 Windows 7,您将看到 CLASSPATH。但是,如果您使用的是 Windows 10,则可能需要手动添加。在我的电脑上是这样的:

4- 将 DatabaseUtils.probs 文件复制到 Weka 文件夹。该文件允许您将数据库中的数据类型与 Weka 自己的数据类型进行匹配。如果某些数据类型不匹配,则必须在此文件中进行设置。

5- 然后你必须从开始菜单打开 Weka。从控制台打开它时它不起作用。无论如何,您不需要控制台。您可以在Weka文件夹的“RunWeka.ini”中设置RAM内存的大小。

6- 单击打开数据库。在屏幕上输入信息,如下所示。请记住,如果密码不正确,仍可能出现 JDBC 驱动程序错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-07
    • 1970-01-01
    • 1970-01-01
    • 2012-08-22
    • 1970-01-01
    • 1970-01-01
    • 2013-08-02
    • 1970-01-01
    相关资源
    最近更新 更多