tit*_*usn 5 java eclipse macos spring
我正在开发一个使用Spring Data的Spring应用程序.我们正在使用Eclipse Luna(4.4.0)并使用Java 8更新20(更高版本中会出现同样的问题).
在Windows下从Eclipse启动应用程序时,它工作正常.在Mac OS X下,出现以下错误:
2015-04-22 14:26:27.492 INFO 5363 --- [ main] o.s.j.d.DriverManagerDataSource : Loaded JDBC driver: com.mysql.jdbc.Driver
2015-04-22 14:26:27.590 INFO 5363 --- [ main] j.LocalContainerEntityManagerFactoryBean : Building JPA container EntityManagerFactory for persistence unit 'jpaPersistenceUnit'
2015-04-22 14:26:28.715 INFO 5363 --- [ main] j.LocalContainerEntityManagerFactoryBean : Building JPA container EntityManagerFactory for persistence unit 'jpaPersistenceUnit'
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x00007fff890330dd, pid=5363, tid=30215
#
# JRE version: Java(TM) SE Runtime Environment (8.0_20-b26) (build 1.8.0_20-b26)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.20-b23 mixed mode bsd-amd64 compressed oops)
# Problematic frame:
# C [libobjc.A.dylib+0x10dd] objc_msgSend+0x1d
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,在初始化与mysql的数据库连接时会发生错误.该数据库正在运行.
任何一般的想法如何解决这个问题?我知道这是一个问题,但如果有更多的信息可以帮助我,请告诉我.也许有众所周知的情况会发生这种情况.
更新:
错误日志的内容:
当我尝试在无头环境中嵌入具有 JavaFX 依赖项的库时,我遇到了这个确切的问题。最初,我使用 Swing 容器构建了一个 JavaFX 启动包装器。此设置导致 JVM 因上述故障转储而崩溃。
我找到了这个解决方案:/sf/answers/1817839691/。这个想法是删除 Swing 包装器并使用以下代码启动 JavaFX 环境:
import javafx.application.Application;
import javafx.stage.Stage;
public class JavaFXInitializer extends Application {
private static Object barrier = new Object();
@Override
public void start(final Stage primaryStage) throws Exception {
synchronized (barrier) {
barrier.notify();
}
}
public static void initialize() throws InterruptedException {
Thread t = new Thread("JavaFX Init Thread") {
@Override
public void run() {
Application.launch(JavaFXInitializer.class, new String[0]);
}
};
t.setDaemon(true);
t.start();
synchronized (barrier) {
barrier.wait();
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后在启动时在主应用程序中调用:
try {
JavaFXInitializer.initialize();
} catch (InterruptedException e) {
// Failed to initialise JavaFX
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
我的 Spring 应用程序现在可以在 OSX 和 Windows 上顺利运行。
| 归档时间: |
|
| 查看次数: |
1086 次 |
| 最近记录: |