2016-04-22 91 views
0

我做了一個簡單的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

這聽起來像你需要修改你的程序,以便捕獲和打印出所有的運行時錯誤和警告。

它還聽起來像你想添加一個「檢查衛生」功能來驗證:

  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