我将正在处理的项目转换为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