Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Netbeans 8.0.2先清理后生成,然后运行旧代码的结果_Java_Netbeans - Fatal编程技术网

Java Netbeans 8.0.2先清理后生成,然后运行旧代码的结果

Java Netbeans 8.0.2先清理后生成,然后运行旧代码的结果,java,netbeans,Java,Netbeans,我不熟悉NetBeans和Java。我正在使用NetBeans为学校构建和运行一个JavaSwing项目 我用NetBeans编写代码并保存了它。使用javac从命令行编译成功,程序按预期运行。如果我更新代码并从CLI重复该过程,新的更改将按预期反映出来 如果我在NetBeans中进行代码更改,并且清理并生成(例如,按Shift+F11),然后从NetBeans中运行(例如,按F6),则更改不会反映出来。没有错误,我只是在输出中得到了一个构建成功的通知。但旧版本的应用程序将运行,不会反映任何更改

我不熟悉NetBeans和Java。我正在使用NetBeans为学校构建和运行一个JavaSwing项目

我用NetBeans编写代码并保存了它。使用
javac
从命令行编译成功,程序按预期运行。如果我更新代码并从CLI重复该过程,新的更改将按预期反映出来

如果我在NetBeans中进行代码更改,并且
清理并生成
(例如,按Shift+F11),然后从NetBeans中运行(例如,按F6),则更改不会反映出来。没有错误,我只是在输出中得到了一个
构建成功的
通知。但旧版本的应用程序将运行,不会反映任何更改

我通过从CLI构建来解决这个问题,但它的使用速度非常快,如果能够在IDE中从w/运行就好了

下面是一些上下文代码。它按需要运行。作为我的问题的一个例子,请注意文件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和Build
选项,它们不用于编译要在IDE中运行的应用程序。保存文件时,默认情况下NetBeans会自动编译项目,如下所示: . 同样,如果用户选择
Run
,所有未保存的文件将在NetBeans运行应用程序之前自动保存和编译。我的问题是,我习惯于清理和构建,这意味着不同的东西,所以每次我想在IDE中运行应用程序时,我都会运行清理和构建。一旦NetBeans中选择了
清理并生成
甚至
生成
选项,我就没有找到一种方法来强制重新编译以便在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>

构建、测试和运行项目1第1部分。

您不必做任何特殊的事情来运行最新版本。使用或不使用生成或清理生成运行,生成将运行最新版本。我以前有过这种症状,结果总是发现源文件和/或项目文件有多个副本。Netbeans正在使用一个来运行,我在错误的目录中编辑了一个副本,希望它能起作用

试试这个:

  • 从“文件”菜单中选择“关闭所有项目”
  • 从窗口菜单中选择关闭所有文档
  • 使用文件->打开项目再次打开项目,注意目录
  • 双击“项目”选项卡中“源程序包”下的一个java文件,打开源文件
  • 进行更改,构建然后运行
  • 如果您仍然有问题,那么您的Netbeans安装可能有问题。考虑关闭NETBeBes,删除用户配置和缓存目录。(),并重新安装Netbeans

  • 您不必做任何特殊的事情来运行最新版本。使用或不使用生成或清理生成运行,生成将运行最新版本。我以前有过这种症状,结果总是发现源文件和/或项目文件有多个副本。Netbeans正在使用一个来运行,我在错误的目录中编辑了一个副本,希望它能起作用

    试试这个:

  • 从“文件”菜单中选择“关闭所有项目”
  • 从窗口菜单中选择关闭所有文档
  • 使用文件->打开项目再次打开项目,注意目录
  • 双击“项目”选项卡中“源程序包”下的一个java文件,打开源文件
  • 进行更改,构建然后运行
  • 如果您仍然有问题,那么您的Netbeans安装可能有问题。考虑关闭NETBeBes,删除用户配置和缓存目录。(),并重新安装Netbeans
  • 换档+f11

    很好用

    非常欢迎您/n

    Shift+f11

    很好用


    非常欢迎您/n

    在基于Maven的项目中,许多缓存输出都在您的“目标”文件夹中


    如果清除不起作用,只需删除目标文件夹并运行项目。

    在基于Maven的项目中,许多缓存的输出都在“目标”文件夹中


    如果清除不起作用,只需删除target文件夹并运行项目。

    您是否可以发布编译/执行代码的
    build.xml
    部分(包括解析变量所需的所有部分,如果使用)。添加了整个文件,不包括注释,仅5行。我不确定这个文件里会发生什么。这是用来告诉NetBeans更新自己的应用程序版本以及它生成的外部构建吗?好的,我认为这是一个独立的基于Ant的项目。您是否使用Netbeans向导创建了此项目?如果更改
    GuiPanel.java
    中的按钮文本并按
    F6
    ,则
    GuiPanle.java
    是否保存并执行了
    ProjectPart1
    ?是的,我使用了向导。是的,按F6键确实会导致项目编译时显示更改。您的项目是否引用了另一个项目(在项目属性的“库”部分)?如果禁用“保存时编译”功能,它是否有效?我看到启用该功能时会发生奇怪的事情(尽管大多数情况下是基于Maven的项目)。你启用“跟踪”了吗