非Maven副本会运行导出的Maven项目

时间:2018-12-21 02:26:02

标签: java maven jar export

我将正在处理的项目转换为maven项目,当我尝试将项目导出到可运行的jar时,仅在导出时才引起问题。

我仍然可以从Eclipse正常运行它。在进行Maven转换之前,我得到了一个备份,并从Maven项目中手动添加了所需的库。我将Non-Maven项目中的代码更新为与Maven项目相同。这两个项目都可以在Eclipse中正常运行。但是,一旦导出,只有Non-Maven项目将运行。

我尝试将'getClassLoader()'添加到FXMLLoader.load中,但没有成功。

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.stage.Stage;
import javafx.stage.StageStyle;
import javafx.scene.Parent;
import javafx.scene.Scene;


public class Main extends Application {

 @Override
 public void start(Stage primaryStage) {
     try {  

         Parent root = FXMLLoader.load(getClass().getResource("Loading.fxml"));
         Scene s = new Scene(root);
         Stage loadStage = new Stage();

         loadStage.setScene(s);
         loadStage.setTitle("Loading: StoreLink - Compliance");
         //Database connecton timeout set high: stackoverflow.com/questions/1683949/connection-timeout-for-drivermanager-getconnection
         loadStage.initStyle(StageStyle.UNDECORATED);
         loadStage.setAlwaysOnTop(true);
         loadStage.show();

         //*********************************************

         FXMLLoader mainLoader = new FXMLLoader(getClass().getResource("MainWindow.fxml"));

         MainWindowController mwc = new MainWindowController(loadStage, primaryStage);
         mainLoader.setController(mwc);

         Scene mainScene = new Scene(mainLoader.load());

         primaryStage.setScene(mainScene);
         primaryStage.setTitle("StoreLink - Compliance");
         primaryStage.setMaximized(true);

     } catch(Exception e) {
         e.printStackTrace();
     }
 }

 public static void main(String[] args) {
     launch(args);
 }
} 

Maven项目:https://imgur.com/aFZsq4E CMD输出:https://imgur.com/OuqejLk

0 个答案:

没有答案