[英]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:我只使用Build
和Clean 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正在運行一個,而我正在錯誤的目錄中編輯一個副本,希望它會起作用。
嘗試這個:
Shift + F11
效果很好。
不客氣
在基於Maven的項目中,許多緩存的輸出位於“目標”文件夾中。
如果清除不起作用,則只需刪除目標文件夾並運行項目。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.