Java 和 jdbc - exe 可运行文件

标签 java sql eclipse jdbc

我做了一个简单的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 文件。

有什么想法吗? 谢谢!

最佳答案

听起来您需要修改您的程序,以便它捕获并打印出所有运行时错误和警告。

听起来您还想添加“检查运行状况”功能来验证:

  1. 该程序在您 friend 的电脑上运行,
  2. 程序连接到 MSSQL 服务器,
  3. 在服务器上找到所需的数据库,并且
  4. 数据库中存在预期数据。

================================================== ===

附录:

感谢您更新帖子并分享真实问题:

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,它无法与新驱动程序一起使用。

两个解决方案:

  1. 让您的 friend 卸载他的 JRE,然后重新安装您的 Java 版本。例如,您可以在此处找到较旧的 JRE 1.7:

  2. 将您的 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/

相关文章:

java - 如何在java中返回递归方法值

java - 如何在 android studio 中使用弹出窗口按钮打开新 Activity ?

sql - 最高效的 SQL 查询

sql - HSQLDB中WHERE和ORDER BY的性能问题

java - 如何让换行符号在 Eclipse 上消失

c - Eclipse 在分配 2D 数组元素期间无消息终止

java - 更好地理解 - Class.forName ("com.mysql.jdbc.Driver".newInstance ();

java - Spring 启动: How to avoid too many JPA repositories for each domain class

SQL 查询 - 从两个表中获取两列的计数

java - Maven Clean、Update、Install 和 Eclipse Clean、Refresh、Build——一个通常正确的顺序?