簡體   English   中英

Netbeans 8.0.2清理並生成然后運行會導致運行舊代碼

[英]Netbeans 8.0.2 Clean and Build then Run results in old code being run

我是NetBeans和Java的新手。 我正在使用NetBeans構建和運行學校的Java Swing項目。

我用NetBeans編寫了代碼並將其保存。 使用javac從命令行javac成功,並且程序按預期運行。 如果我更新代碼並從CLI重復此過程,則新更改將按預期反映。

如果我在NetBeans中進行了代碼更改,然后“ Clean and Build (例如通過按Shift + F11鍵),然后在NetBeans中運行(例如通過F6鍵),則更改不會反映出來。 沒有錯誤,我只是在Output中得到了BUILD SUCCESSFUL通知。 但是,該應用程序的較舊版本將在運行時不反映任何更改。

我可以通過從CLI進行構建來解決它,但是它變舊得非常快,能夠在IDE中運行可以很好。

以下是一些上下文代碼。 它按需運行。 作為我的問題的示例,請注意文件2中的按鈕初始化。如果更改ctor字符串arg,則在NetBeans中進行清理,構建和運行時(或如果我僅進行構建和運行而未進行清理)將不會反映該更改。 )。 但是,如果從命令行運行,它將反映出來。

文件1:

/* pkg & import statements */

public class Project1Part1 {

    public static void main(String[] args) {
        System.out.println("Attempting to build frame...");
        buildFrame();
    }

    public static void buildFrame()
    {
        JFrame frame = new JFrame("Project 1, Part 1");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        GuiPanel guiPanel = new GuiPanel();
        frame.setContentPane(guiPanel);
        frame.setSize(640, 360);
        frame.setVisible(true);
        System.out.println("Frame built.");
    }
}

檔案2:

/* pkg and import statements */

public class GuiPanel extends JPanel {

    public GuiPanel()
    {
        LayoutManager layoutMgr = new FlowLayout();
        setLayout(layoutMgr);

        Dimension buttonSize = new Dimension(150, 20);
        JButton cardPickerButton = new JButton("Card Picker");
        cardPickerButton.setPreferredSize(buttonSize);
        add(cardPickerButton);
    }
}

更新:根據我看到的其他發布,我在黑暗中將我的Ant版本從1.9.4升級到1.9.6,這沒有什么區別。

更新2:我只使用BuildClean and Build選項,它們不是用於編譯要在IDE中運行的應用程序的。 保存文件后,NetBeans會默認按照以下條件自動編譯項目: NetBeans文檔 同樣,如果用戶選擇Run ,則所有未保存的文件將在NetBeans運行應用程序之前自動保存和編譯。 我的問題是,我習慣於“清理和構建”的含義有所不同,因此每次我想在IDE中運行應用程序時,我都會運行“清理和構建”。 一旦在NetBeans中選擇了Clean and Build甚至Build選項,除了進行細微的更改以允許重新保存項目中的某些文件外,我沒有找到一種方法來強制重新編譯IDE中的代碼。

更新3:根據請求添加項目的build.xml 我刪除了注釋部分以提高可讀性。

<?xml version="1.0" encoding="UTF-8"?>
<project name="Project1Part1" default="default" basedir=".">
    <description>Builds, tests, and runs the project Project1Part1.</description>
    <import file="nbproject/build-impl.xml"/>
</project>

您不必執行任何特殊操作即可運行最新版本。 在有或沒有Build的情況下運行,或者Clean and Build將運行最新版本。 我以前曾有過這種症狀,並且總是發現源文件和/或項目文件有多個副本。 Netbeans正在運行一個,而我正在錯誤的目錄中編輯一個副本,希望它會起作用。

嘗試這個:

  1. 從文件菜單中選擇關閉所有項目
  2. 從窗口菜單中選擇關閉所有文檔
  3. 使用文件->打開項目再次打開項目,請注意目錄。
  4. 雙擊打開項目文件選項卡中源包下的Java文件之一的源文件。
  5. 進行更改,先生成,然后運行。
  6. 如果仍然有問題,則說明您安裝的Netbeans可能有問題。 考慮關閉Netbeans,刪除用戶配置和緩存目錄。 http://wiki.netbeans.org/FaqWhatIsUserdir ),然后重新安裝Netbeans。

Shift + F11

效果很好。

不客氣

在基於Maven的項目中,許多緩存的輸出位於“目標”文件夾中。

如果清除不起作用,則只需刪除目標文件夾並運行項目。

暫無
暫無

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

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