我做了一个简单的java任务来使用jdbc库在Windows上查询Ms sql DB。 该程序在我的 eclipse 上完美运行。我想将它用作 exe 文件(这样我可以将其发送给 friend ,这样他也可以使用它)。 我制作了一个jar(使用eclipse上的导出选项),这样他就可以在windows上将其作为exe文件执行。问题是,当他由于某种原因在 Windows 上运行 jar 文件时,查询结果为空。我不确定到底是什么问题。 它不在本地主机上。这就是我的连接方式 -
String connectionUrl = "jdbc:sqlserver://**.***.***.***;" + "databaseName=&&&&&&&&;user=&&&&&&&&&&&;password=$$$$$$$$";
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
con = DriverManager.getConnection(connectionUrl);
这是我得到的错误 - 不知道如何处理它:
java.lang.UnsupportedOperationException: Java Runtime Environment (JRE) version 1.8 is not supported by this driver. Use the sqljdbc4.jar class library, which provides support for JDBC 4.0
该文件夹中有 sqljdbc4.jar 和 sqljdbc4.jar 文件。
有什么想法吗? 谢谢!
最佳答案
听起来您需要修改您的程序,以便它捕获并打印出所有运行时错误和警告。
听起来您还想添加“检查运行状况”功能来验证:
- 该程序在您 friend 的电脑上运行,
- 程序连接到 MSSQL 服务器,
- 在服务器上找到所需的数据库,并且
- 数据库中存在预期数据。
================================================== ===
附录:
感谢您更新帖子并分享真实问题:
This is the error I get - not sure how to handle it: java.lang.UnsupportedOperationException: Java Runtime Environment (JRE) version 1.8 is not supported by this driver. Use the sqljdbc4.jar class library, which provides support for JDBC 4.0
听起来您是在较旧版本的 Java 上编译的(这很好),并且使用较旧的 MSSQL/JDBC 驱动程序(这也很好)...
...但是您的 friend 有一个新 JRE 1.8,它无法与新驱动程序一起使用。
两个解决方案:
让您的 friend 卸载他的 JRE,然后重新安装您的 Java 版本。例如,您可以在此处找到较旧的 JRE 1.7:
将您的 MSSQL 驱动程序更新到当前版本(sqljdbc 4.2 是一个不错的选择),验证它是否适合您,然后让您的 friend 安装相同的 MSSQL 驱动程序。您可以在这里下载:
https://msdn.microsoft.com/en-us/library/mt484311%28v=sql.110%29.aspx
PS: 第三种选择 - 也许最好 - 是你们双方安装相同版本的Java和相同 MSSQL JDBC 驱动程序的版本。PPS:以后,如果您有错误消息,请逐字复制/粘贴到您的原始帖子中。一条好的错误消息通常足以立即解决问题。
关于Java 和 jdbc - exe 可运行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36803670/