2014-11-15 30 views
-3

我收到一些運行我的Java應用程序時出現錯誤的報告,但我沒有遇到同樣的錯誤。我很確定這是他們最終的問題,而不是我的代碼中的錯誤。什麼會導致一個正確構建的Java應用程序無法正常工作?根據我的測試人員的報告,他們似乎安裝了最新的Java更新,並且都沒有運行Windows XP。我可以告訴他們爲了驗證他們的系統上的Java配置是否正確,以便Java應用程序能夠正常運行?是什麼導致某些Java應用程序在某些系統上的運行方式與其他系統不同?

在我遇到的特定示例中,我爲Windows編寫了一個GUI應用程序。我的測試人員聲稱,當他進入「文件」菜單並點擊「打開」時,沒有任何反應。在我的最後一個JFileChooser窗口彈出,但對我的測試者來說什麼都沒有發生。我們都在運行64位Windows 7操作系統。我已經測試了這兩個測試,比Java測試早於或晚於測試儀正在使用的測試。我也在另一臺計算機上試過我的應用程序,並且它也適用於該計算機。我幾乎完全相信,這是我的用戶的一個錯誤,因爲我似乎無法得到同樣的問題發生。

在此先感謝您的答覆。

+0

認爲有很多java版本。第1步:檢查他們正在使用的版本。如果它已過時,則發現問題。 –

+0

你在說什麼樣的錯誤? – Philipp

+1

請考慮您的代碼不是以跨平臺的方式編寫的。例如,你有沒有硬編碼任何'\ r \ n'?另外,你認爲你的代碼實際上可能有錯誤嗎? –

回答

3

什麼能導致否則正確構造的Java應用程序無法正常工作。

這是一個循環問題。唯一可能的答案是一個圓形的答案。

但一些更常見的東西包括。

  • 的平臺特定假設意外摻入的代碼:

    • 假設爲路徑名特定平臺的語法,線端。

    • 假設平臺特定的文件系統佈局。

    • 假設應用程序將以管理員權限運行。

    • 假設文本的特定字符編碼方案。

  • 線程問題。錯誤編寫的多線程代碼可能會在一個平臺(具有給定的操作系統和硬件配置)上正確運行,並且在另一個平臺上不可靠。請注意,基於GUI的Java應用程序通常是多線程的。

  • 安全相關問題。最近的Java版本中處理applet等的方式發生了重大(突破!)的變化。

基於這樣的事實,不同的測試人員報告不同的問題,(我猜)似乎bug報告沒有什麼意義,我會懷疑多線程/同步問題。


我可以告訴他們,以做驗證的Java是他們的系統上正確配置,使Java應用程序將正常運行?

這不太可能成爲Java安裝方式的問題。特別是如果多個測試人員報告問題。

這個問題很可能在您的應用程序中,以及您認爲它的構造正確的假設。

2

如果您描述客戶更詳細的錯誤,那將會很棒。

在此之前,我會在黑暗中進行刺擊,並說客戶的區域設置與您的區域設置不同,並且您的代碼不是區域設置獨立的。

也許你用過String#toLowerCase(),現在一切都崩潰了,因爲your clients are Turkish

或者您忽略了SimpleDateFormatlocale dependent

編輯:

I'm almost entirely convinced that it is an error on my user's end 

我邀請你擺脫這種信念,並承擔對你的代碼更謙卑的姿態。 Because our skulls are so small.

相關問題