我有一個服務器項目,我需要通過服務器將對象從一臺計算機發送到另一臺計算機。該對象是一個SpecificGame,它擴展了Game。服務器知道它收到的對象是Game類型的,但無法訪問SpecificGame或任何其他擴展Game的類。服務器然後將這個對象傳遞給另一臺計算機,並且一切都很好。Java ClassNotFoundException現有類的子類
我有多個擴展遊戲類(我正在使用這個服務器的幾個電腦遊戲),我不斷修改和添加這些類,而不修改遊戲本身。
然而,最近,即使SpecificGame擴展了服務器可以識別的Game,服務器也會爲SpecificGame拋出ClassNotFoundException。如果我在eclipse中將服務器導出爲與SpecificGame相同的項目文件夾,但它工作正常,但這意味着我必須導出jar並在每次修改任何擴展了Game並通過服務器的服務器時重新啓動服務器。
我一直在使用ObjectInputStream.readObject()方法來讀取擴展遊戲的類,這已經引發了異常。
請幫我弄清楚可能是什麼原因引起的。
不幸的是,我無法在線發佈代碼細節。
謝謝!
你在閱讀SpecificGame後如何投入? '(遊戲)ObjectInputStream.readObject()'或'(SpecificGame)ObjectInputStream.readObject()'? – corpico
我使用了(遊戲),這樣我就可以使用任何類,包括SpecificGame,它將Game與服務器 – Waiwera