Comments (6)
I found out that the exception cause by CompletableFuture.supplyAsync(() -> SpringApplication.run(this.getClass(), savedArgs) )...
at AbstractJavaFxApplicationSupport#init()
after I give a specify Executor, problem solved
/*
* (non-Javadoc)
*
* @see javafx.application.Application#init()
*/
@Override
public void init() throws Exception {
// Load in JavaFx Thread and reused by Completable Future, but should not be a big deal.
CompletableFuture.supplyAsync(() ->
SpringApplication.run(this.getClass(), savedArgs), Executors.newFixedThreadPool(2)
).whenComplete((ctx, throwable) -> {
if (throwable != null) {
LOGGER.error("Failed to load spring application context: ", throwable);
Platform.runLater(() -> showErrorAlert(throwable));
} else {
Platform.runLater(() -> {
loadIcons(ctx);
launchApplicationView(ctx);
});
}
}).thenAcceptBothAsync(splashIsShowing, (ctx, closeSplash) -> {
Platform.runLater(closeSplash);
});
}
You can copy the AbstractJavaFxApplicationSupport.java
file to src/main/java/de.felixroske.jfxsupport
and rewrite the method, it will solved your problem;
from springboot-javafx-support.
I encountered a similar problem. I modified the source code, changed the thread context class loader to SpringBoot's class loader, and then solved the problem
@Override
public void init() throws Exception {
// Load in JavaFx Thread and reused by Completable Future, but should no be a big deal.
defaultIcons.addAll(loadDefaultIcons());
CompletableFuture.supplyAsync(() -> {
Thread.currentThread().setContextClassLoader(this.getClass().getClassLoader()); //fix
return SpringApplication.run(this.getClass(), savedArgs);
}
).whenComplete((ctx, throwable) -> {
if (throwable != null) {
LOGGER.error("Failed to load spring application context: ", throwable);
Platform.runLater(() -> showErrorAlert(throwable));
} else {
Platform.runLater(() -> {
loadIcons(ctx);
launchApplicationView(ctx);
});
}
}).thenAcceptBothAsync(splashIsShowing, (ctx, closeSplash) -> {
Platform.runLater(closeSplash);
});
}
from springboot-javafx-support.
I have the same problem. I am using JDK11 and SpringBoot 2.7
from springboot-javafx-support.
#96 This branch is about to fix this problem.
from springboot-javafx-support.
I encountered a similar problem. I modified the source code, changed the thread context class loader to SpringBoot's class loader, and then solved the problem
@Override public void init() throws Exception { // Load in JavaFx Thread and reused by Completable Future, but should no be a big deal. defaultIcons.addAll(loadDefaultIcons()); CompletableFuture.supplyAsync(() -> { Thread.currentThread().setContextClassLoader(this.getClass().getClassLoader()); //fix return SpringApplication.run(this.getClass(), savedArgs); } ).whenComplete((ctx, throwable) -> { if (throwable != null) { LOGGER.error("Failed to load spring application context: ", throwable); Platform.runLater(() -> showErrorAlert(throwable)); } else { Platform.runLater(() -> { loadIcons(ctx); launchApplicationView(ctx); }); } }).thenAcceptBothAsync(splashIsShowing, (ctx, closeSplash) -> { Platform.runLater(closeSplash); }); }
It works!! Thank u so much!!!!
I use the springboot-javafx-support code in SpringBoot3 with JavaFX17, and it work in IDEA, but fail to run in Jar
and finally works after use your modified code
it has took me two days to fingure out...tired
from springboot-javafx-support.
from springboot-javafx-support.
Related Issues (20)
- How to run on different platforms, how to pack?
- How to set the locale for the whole application ? HOT 3
- showView methods from AbstractJavaFxApplicationSupport should return more information HOT 1
- there is a Exception when i use webView in FXML
- Disable web-server
- have any plans to upgrade to javafx11? HOT 2
- How to support Chinese? HOT 2
- How to set the title of dialog or subwindow? HOT 1
- Allow custom error action
- How to close a stage create by Main.showView()? thanks
- Getting No auto configuration classes found when extending AbstractJavaFxApplicationSupport.class with @SpringBootApplication class HOT 6
- Can't set controller in HelloworldJavaView demo HOT 3
- No auto configuration classes found when extending AbstractJavaFxApplicationSupport.class with @SpringBootApplication class on Java 11
- Multiple window problems HOT 2
- How to change the display of the page HOT 1
- Whether it is possible to update java11 branches to maven libraries HOT 1
- it cannot load classpath resource HOT 1
- de.felixroske.jfxsupport.AbstractJavaFxApplicationSupport - Failed to load spring application context: HOT 1
- Suggest changing the createStage method from private to public
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from springboot-javafx-support.