Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.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
Eclipse 如何使用maven for JavaFx8和spring创建jar文件_Eclipse_Spring_Maven_Javafx_Executable Jar - Fatal编程技术网

Eclipse 如何使用maven for JavaFx8和spring创建jar文件

Eclipse 如何使用maven for JavaFx8和spring创建jar文件,eclipse,spring,maven,javafx,executable-jar,Eclipse,Spring,Maven,Javafx,Executable Jar,两天来,我试图从我用spring和JavaFx编写的项目中创建一个可执行的jar文件。我尝试用不同的方法和插件,比如com.zenjava:javafxmaven插件、execmaven插件、maven shade插件等等。 是否可以部署spring和JavaFx?你怎么能做到 编辑部分: 我发现了问题。jar文件中不存在所需的spring类。所以我添加了SpringBootMaven插件,之后一切都很好。非常感谢Windy勋爵 既然你给了我一个神奇的词“javafx8”,我可以把这个作为一个答

两天来,我试图从我用spring和JavaFx编写的项目中创建一个可执行的jar文件。我尝试用不同的方法和插件,比如com.zenjava:javafxmaven插件、execmaven插件、maven shade插件等等。 是否可以部署spring和JavaFx?你怎么能做到

编辑部分:


我发现了问题。jar文件中不存在所需的spring类。所以我添加了SpringBootMaven插件,之后一切都很好。非常感谢Windy勋爵

既然你给了我一个神奇的词“javafx8”,我可以把这个作为一个答案。Javafx包含在JRE中。因此,如果您想在没有JavaFX的计算机上包含JavaFX,则需要将JRE与Jar捆绑在一起

编辑:

您似乎在实际的项目中遇到了问题,而不是Java方面的问题,所以我用Java编写了一个小的示例项目

这就是你刚才说的控制器

package local.brown;

import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.canvas.Canvas;
import javafx.scene.control.Label;

import java.net.URL;
import java.util.ResourceBundle;

/**
 * Created by Sam on 12/9/2014.
 */
public class WindowController implements Initializable {

  @FXML private Label label;
  @FXML private Canvas canvas;

  public void setLabel(String s){
    label.setText(s);
  }

  public void  initialize(URL url, ResourceBundle rb) {

  }
}
我认为您将使用的FXML文档

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

<?import javafx.scene.layout.BorderPane?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.HBox?>
<?import javafx.scene.canvas.Canvas?>


      <BorderPane id="BorderPane" xmlns:fx="http://javafx.com/fxml" fx:controller="local.brown.WindowController">

          <top>
              <HBox style="-fx-background-color: #336699;">
                  <Label fx:id="label" text="Page Title"/>
              </HBox>
          </top>
        <center>
              <Canvas fx:id="canvas" width="1024" height="768" />
          </center>
      </BorderPane>


是关于用maven制作罐子的教程。我知道这个网站。问题不在于用maven创建jar文件,而在于如何在这个jar文件中包含JavaFx 8我认为这里的任何人都不能帮助您,只能提供指向JavaFx maven插件文档的链接(该文档描述了如何使用maven打包JavaFx项目,所以是的,这是可能的):。为了在具体问题上获得具体的帮助,你通常需要在问题中包括环境信息和完整的错误跟踪。我的电脑使用JDK,JRE 1.8。当我说JavaFX8时,我想这是很清楚的,很抱歉。我真的不明白这个问题,FX8包含在Java8中。自从我发布链接以来,FX已经包含在Java中。你不能捆绑它,你只需要编写带有导入的源文件,如果你想确保用户可以运行它,你需要包含一个JRE的副本。好的,我想现在我的问题不是来自Javafx的打包,而是因为来自Javafx的结构。现在尝试打开jar文件时出现的错误是:缺少JavaFX应用程序类com/project/test/App。我有3个Fxml和3个控制器(MenuController、LeftController、RightController)。也许我必须用主控制器创建主fxml,并将所有其他3个控制器放入其中。我仍然不知道我该怎么做。我不能为你做这件事,但这是一个有效的例子。
<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.layout.BorderPane?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.HBox?>
<?import javafx.scene.canvas.Canvas?>


      <BorderPane id="BorderPane" xmlns:fx="http://javafx.com/fxml" fx:controller="local.brown.WindowController">

          <top>
              <HBox style="-fx-background-color: #336699;">
                  <Label fx:id="label" text="Page Title"/>
              </HBox>
          </top>
        <center>
              <Canvas fx:id="canvas" width="1024" height="768" />
          </center>
      </BorderPane>