簡體   English   中英

在Java中運行時保存源代碼

[英]Saving a source code while running in java

這是我自己的karel機器人版本。 只能運行eclipse的看門機器人。 我的問題是,當我第一次打開並單擊“運行”時,機器人將根據代碼移動。 但是,當我嘗試在窗口打開時編輯代碼時,當我再次單擊運行按鈕時,它沒有移動,需要再次關閉。

這是我在run方法中的源代碼:

我有一個janibot類,該類由runnable然后實現。 我通過此代碼動態創建其實例。

Object tempJanibot = Class.forName(className).newInstance();
janibot = (Janibot) tempJanibot;
janibot.run()

其中classname是Janibot的子類,在屏幕截圖中采用了Turns。

它成功創建了takeTurns類的實例。

但是我想當我在程序運行時編輯代碼並單擊run方法時,takeingTurns類也必須更新,但不幸的是它不會更新,因此我需要再次關閉並單擊run按鈕。

在此處輸入圖片說明

您正在尋找的是Java類的熱加載。 Java中的默認機制是在classloader引用中classloader一次該類,並在需要時重新使用它。 因此,當Java應用程序運行時,如果重新編譯該類,它將不會獲取新的定義。 如果您希望實現類似的功能,則可以尋找諸如JRebelspring loading的解決方案。

“這不是一個錯誤,這是一個功能!” Eclipse在運行時無法重新編譯您的代碼並將這些更改合並到當前正在運行的程序中。 您每次都必須重新啟動程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM