当前位置: 首页 > 知识库问答 >
问题:

Javafx Spring启动-运行应用程序时出错

夹谷苗宣
2023-03-14

这是我第一次使用Javafx与Spring Boot我有以下错误时运行我的应用程序

Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:2.0.0.RELEASE:run (default-cli) on project basic: Could not exec java: Application finished with exit code: 1 -> [Help 1]

主课

@SpringBootApplication
public class BasicApplication extends Application {

private Parent root;
private ConfigurableApplicationContext context;

@Override
public void init() throws Exception {
    context = SpringApplication.run(BasicApplication.class);
    FXMLLoader loader=new FXMLLoader(getClass().getResource("/fxml/Scene.fxml"));
    loader.setControllerFactory(context::getBean);
    root=loader.load();
}

@Override
public void start(Stage primaryStage) throws Exception {
    Scene scene = new Scene(root);

    primaryStage.setScene(scene);
    primaryStage.show();
}

@Override
public void stop() throws Exception {
    context.close();
}

public static void main(String[] args) {
    launch(BasicApplication.class,args);
}

}

控制器类

public class SceneController implements Initializable {

@FXML
private Label label;

@FXML
private void buttonAction(){
    label.setText("Hello World!");
} 

@Override
public void initialize(URL url, ResourceBundle rb) {
    // TODO
}    

}

pom.xml

<?xml version="1.0" encoding="UTF-8"?>

http://maven.apache.org/xsd/maven-4.0.0.xsd"

<groupId>com.example</groupId>
<artifactId>basic</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>basic</name>
<description>Basic project for Spring Boot</description>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.0.RELEASE</version>
    <relativePath/>
</parent>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-configuration-processor</artifactId>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <fork>true</fork>
            </configuration>
        </plugin>
    </plugins>
</build>

拜托这是怎么回事。为什么org.springframework.boot:sping-boo-maven-plugin:2.0.0。释放:运行不能被执行?

场景fxml代码

<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.AnchorPane?>
<AnchorPane id="AnchorPane" prefHeight="400.0" prefWidth="600.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8.0.141" fx:controller="com.example.SceneController">
<children>
    <Button layoutX="126" layoutY="90" onAction="#buttonAction" text="Click Me!" />
    <Label fx:id="label" layoutX="126" layoutY="120" minHeight="16" minWidth="69" />
</children>

我正在用NetBeans IDE运行应用程序

共有2个答案

黄涵畅
2023-03-14

我注意到你没有展示你的场景。fxml文件(指定应用程序布局的文件)或项目的目录结构。

检查 /src/main/resources/fxml/目录中是否有Scene.fxml文件。

我已经运行了您的代码,包括在我的计算机中创建了一个具有https://start.spring.io/,使用此作为场景。fxml:

<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.AnchorPane?>
<AnchorPane xmlns="http://javafx.com/javafx">
    <Label text="Main Content"/>
</AnchorPane>

运行命令mvn clean spring boot:run,它就可以正常工作了。

检查您是否正确配置了JAVA_HOME环境变量。

通过以下链接了解javafx with spring boot的简介:https://wimdeblauwe.wordpress.com/2017/09/18/using-spring-boot-with-javafx/

希望这能有所帮助。

邓夕
2023-03-14

好的,我们已经看到了错误发生的原因。我没有在Controller类中包含@Component。我的错误。

@Component
public class SceneController implements Initializable {
   @FXML
   private Label label;

   @FXML
   private void buttonAction(){
        label.setText("Hello World!");
   }

   @Override
   public void initialize(URL url, ResourceBundle rb) {
         // TODO
   }

}

`现在一切正常

 类似资料:
  • 当我尝试运行Grails 3.3.8时,我遇到了以下错误,但我不知道它是从哪里来的,我正在使用Java 8和MySQL 8.0.12和Intellj: 失败:生成失败,出现异常。 错误:任务': bootRun'执行失败。 下面是应用程序中的Hibernate配置。yml环境:开发:数据源:池:true dbCreate:创建drop driverClassName:com。mysql。jdbc。

  • 问题内容: 我写了一个Qt应用程序,它将在Linux上运行。它应该在启动时运行。 它应该在每个Linux- Suse,RedHat等上运行。 我应该写什么脚本,放在哪里? 我根本不知道如何编写脚本,因此,如果您附上示例,我将不胜感激。 问题答案: 您需要为您的应用程序创建一个桌面入口文件(请参阅此处),并将其放置在用户目录中。 Window Manager启动时,该目录中的任何桌面条目文件都将被执

  • 问题内容: 我有一个包含Java应用程序的JAR文件。如何使它从Windows开始而不需要用户交互? 问题答案: 创建一个.bat文件,并将其放入其中: 然后将.bat文件放入Windows启动文件夹。 还有一件事:使用java和javaw之间是有区别的。虽然在调试应用程序时使用Java更好,但应用程序会打印文本或类似内容,而在不需要时,javaw则更好。为什么?因为java使用控制台显示所有应用

  • 我有一个包含Java应用程序的JAR文件。如何在不需要用户交互的情况下从Windows开始?

  • 一旦我运行我的代码,它给出了下面的错误。在这里我可以解决这个问题。 在com中输入personRepository。实例演示。服务PersonService需要一个名为“mongoTemplate”的bean,但找不到该bean。 注入点有以下注释:-@org.springframework.beans.factory.annotation.自动配电(必需=true) 行动: 考虑在配置中定义一个

  • 当我运行这个错误时,请帮助我解决这个问题 启动应用程序上下文时出错。要显示条件,请报告启用“调试”后重新运行应用程序。2019-02-11 10:53:55.839错误8804 --- [ restartedMain]o. s. b. d.日志失败分析记者: 应用程序启动失败 说明: com中的字段userDao。实例Spring Security应用程序编程接口。服务UserServiceImp