javac在当前文件夹中找不到另一个编译的类

时间:2018-12-31 13:49:39

标签: java javafx

我正在使用OpenJDK11。 我在当前文件夹中有两个Java文件,它们应该一起运行才能成为JavaFX应用程序。 其中之一称为import re with open("testfile.txt", "r") as text_file: contents = text_file.read().replace("\n", "") print(re.match(r'^\/m\/[a-zA-Z0-9_-]+$', contents)) ,并运行主窗口。另一个是Main.java,应该运行一个替代窗口,它是警报类型。 现在,我运行了以下命令:

Alert.java

虽然javac -cp "c:\projects\java\currentProject" --module-path "c:\Program Files\Java\javafx-sdk-11.0.1\lib" --add-modules=javafx.controls,javafx.fxml Alert.java Main.java 编译得很好,但是Alert.java无法导入Alert类,并在“ import Alert”上给出了错误。我尝试了“导入Alert.Alert”和“导入currentProject.Alert”,但是仍然没有用。 另外,我在每个文件的开头声明了程序包“ package currentProject”,它仍然给出错误。

我应该怎么做才能使其运行?我已经无法在所有可用的IDE上安装JavaFX,因此除了Atom之外,我不会使用其他IDE。但是如何正确编译呢?

更多信息-

文件结构:

c-> projects-> java-> economicManager->(Alert.java,Main.java,financialManager.fxml,alert.fxml,Alert.class,Alert $ Controller.class,Main.class [先前编译的版本] )

Alert.java:

Main.java

Main.java:

package financialManager;

import javafx.stage.Stage;
import javafx.stage.Modality;
import javafx.scene.Scene;
import javafx.scene.Parent;

import javafx.scene.control.Button;
import java.util.Map;

public class Alert {

    public Stage stage;
    private Controler_Class controler;

    public Alert(Parent root) {

        Controler_Class clas = new Controler_Class(root);
        this.controler = clas;

        Scene scene = new Scene(root);
        Stage stage = new Stage();

        stage.initModality(Modality.APPLICATION_MODAL);
        stage.setTitle("financial report");
        stage.setScene(scene);

        this.stage = stage;
        stage.showAndWait();
    }

    private class Controler_Class{

        Parent root;

        public Controler_Class(Parent root){

        }
    }
}

1 个答案:

答案 0 :(得分:1)

我看到您错误地导入了 Alert 类。您的软件包是 financialManager ,因此您应该在导入行中使用它,如下所示:

import financialManager.Alert;

关于您的IDE问题,几天前,我使JavaFX与OpenJDK 11上的Eclipse和IntelliJ正常工作,没有任何问题-对于OpenJDK,您需要OpenJFX,如果您对某些阅读感兴趣,{ {3}}是Oracle博客上有关JavaFX计划的链接。

祝你好运!