Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.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
Spring持久层启动时Mac OS X下的Java VM崩溃_Java_Eclipse_Spring_Macos - Fatal编程技术网

Spring持久层启动时Mac OS X下的Java VM崩溃

Spring持久层启动时Mac OS X下的Java VM崩溃,java,eclipse,spring,macos,Java,Eclipse,Spring,Macos,我正在开发一个使用Spring数据的Spring应用程序。我们正在使用EclipseLuna(4.4.0)并使用Java8Update20(在更高版本中也会出现同样的问题) 在Windows下从Eclipse启动应用程序时,它工作正常。在Mac OS X下,发生以下错误: 2015-04-22 14:26:27.492 INFO 5363 --- [ main] o.s.j.d.DriverManagerDataSource : Loaded JDBC d

我正在开发一个使用Spring数据的Spring应用程序。我们正在使用EclipseLuna(4.4.0)并使用Java8Update20(在更高版本中也会出现同样的问题)

在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
正如您所看到的,初始化到mysql的数据库连接时会发生错误。该数据库正在运行

有没有解决这个问题的一般方法?我知道这样问有点牵强,但是如果有更多的信息可以帮助的话,请告诉我。也许有一些众所周知的情况会发生这种情况

更新:

错误日志的内容:


如果您检查hs_err文件中的本机堆栈跟踪,则似乎与Mac上的某些图形相关。此问题:描述相同的崩溃。建议使用
-Dprism.order=j2d
-Dprism.order=sw
运行jvm。试试看

在无头环境中嵌入具有JavaFX依赖项的库时,我遇到了这个问题。最初,我使用Swing容器构建了一个JavaFX引导包装器。此设置导致JVM因所述的崩溃转储而崩溃

我找到了这个解决方案:。我们的想法是删除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();
        }
    }
}
然后在启动时在主应用程序中使用以下命令调用:

try {
    JavaFXInitializer.initialize();
} catch (InterruptedException e) {
    // Failed to initialise JavaFX
    e.printStackTrace();
}

我的Spring应用程序现在在OSX和Windows上都能顺利运行。

java进程的CWD中是否有hs_err文件?如果是这样,请发布它的内容。当然,我在上面的日志中添加了一个链接。正如你在上面的回答中所看到的,它与javaFX有关,但事实证明我们遇到了一个不同的问题。