Java和jdbc - EXE运行文件

问题描述:

我做了一个简单的java任务,使用jdbc库在Windows上对Ms s​​ql sql数据库进行查询。该程序在我的日食上完美运行。我想用它作为exe文件(所以我可以将它发送给朋友,以便他也可以使用它)。 我做了一个jar(在eclipse上使用导出选项),​​所以他可以在Windows上将它作为exe文件执行。问题是当他在Windows上运行jar文件出于某种原因查询的结果是空的。我不确定问题到底是什么。 它不在本地主机上。这就是我如何连接 -Java和jdbc - EXE运行文件

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文件。

有什么想法? 谢谢!

+0

1)您是JAR和EXE的冲突条款2)您的JDBC URI是否指向相同的数据库和表,并且您没有针对本地主机或其他东西运行代码? –

+0

是否有例外?你在任何地方记录东西?我的猜测是你没有正确处理异常,并且你的问题没有被注意到,导致你的程序按预期工作。如果你给我们更多的代码来看看会很感激。 – Wizard

+0

我会尽快发布。我选择导出来包含我正在使用的所有罐子,但是在导出时仍然出现错误 - “带有警告的罐子导出”。 也许jdbc jar没有包含在最终的jar文件中? – user2950329

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

它还听起来像你想添加一个“检查卫生”功能来验证:

  1. 程序你朋友的电脑上运行,
  2. 程序连接到MSSQL服务器,
  3. 的预期的数据库在服务器上找到,并且
  4. 期望的数据存在于数据库中。

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

附录:

感谢您更新您的文章和分享真正问题:

这是我的错误 - 不知道如何处理它: java.lang.UnsupportedOperationException:不支持Java运行时环境 (JRE)版本1.8 b这个驱动程序。使用 sqljdbc4.jar类库,它提供JDBC 4.0支持

这听起来像你的一个老版本的Java(这是罚款)的编制,与旧的MSSQL/JDBC驱动程序(这很好,太) ...

...但你的朋友有一个 JRE 1.8将不会与新的驱动程序工作。

两个解决方案:

  1. 让您的好友卸载他的JRE,然后做一个干净的安装你的Java版本。例如,您可以找到旧的JRE 1。7这里:

  2. 更新您的MSSQL的驱动程序到最新版本(sqljdbc 4.2是一个不错的选择),验证它是否适合你,然后让你的朋友安装相同的MSSQL的驱动程序。你可以在这里下载:

https://msdn.microsoft.com/en-us/library/mt484311%28v=sql.110%29.aspx

PS: 第三种选择 - 也许最好 - 是你们两个安装相同版本的Java和相同版本的MSSQL JDBC驱动程序。

PPS:将来,如果您有错误消息,请将其逐字复制/粘贴到原始帖子中。一个好的错误信息通常足以立即解决问题。

+0

我不认为卸载Java 8应该是解决问题的途径。 Java 7可以安装在用于执行代码的一侧。 –

+0

感谢您的答案 - 我只是试图运行它作为EXE在我的电脑上,并得到了完全相同的错误... – user2950329