0

At the moment I am trying to run Intellij Idea remotely using x11 over ssh, such that I see the widgets on my personal iMac, but the IDE is actually running on my work issued MacPro. This way I can work from home during the Corona outbreak with a decent size monitor without violating company policy concerning work related code on a personal computer. To that effect I enabled X11 forwarding on the SSH daemon running on my work machine, and installed xquartz on both machines. From my home machine I was able to ssh into my work machine and run x11 programs such as xclock and xeyes without any problems. When I try to run Idea, however I get an exception:

/Applications/IntelliJ\ IDEA.app/Contents/MacOS/idea

2020-03-17 20:29:57,056 [   2940]  ERROR - nsions.impl.ExtensionPointImpl - null 
java.awt.HeadlessException
        at java.desktop/java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:208)
        at java.desktop/java.awt.Window.<init>(Window.java:548)
        at java.desktop/java.awt.Frame.<init>(Frame.java:423)
        at java.desktop/java.awt.Frame.<init>(Frame.java:388)
        at java.desktop/javax.swing.JFrame.<init>(JFrame.java:180)
        at com.intellij.openapi.wm.impl.welcomeScreen.FlatWelcomeFrame.<init>(FlatWelcomeFrame.java:93)
        at com.intellij.openapi.wm.impl.welcomeScreen.FlatWelcomeFrameProvider.createFrame(FlatWelcomeFrameProvider.java:27)
        at com.intellij.openapi.wm.impl.welcomeScreen.WelcomeFrame.lambda$createWelcomeFrame$1(WelcomeFrame.java:177)
        at com.intellij.openapi.extensions.impl.ExtensionProcessingHelper.computeSafeIfAny(ExtensionProcessingHelper.java:45)
        at com.intellij.openapi.extensions.ExtensionPointName.computeSafeIfAny(ExtensionPointName.java:60)
        at com.intellij.openapi.wm.impl.welcomeScreen.WelcomeFrame.createWelcomeFrame(WelcomeFrame.java:177)
        at com.intellij.openapi.wm.impl.welcomeScreen.WelcomeFrame.prepareToShow(WelcomeFrame.java:159)
        at com.intellij.idea.IdeStarter.main(ApplicationLoader.kt:510)
        at com.intellij.idea.ApplicationLoader$startApp$8$1.run(ApplicationLoader.kt:240)
        at com.intellij.openapi.application.TransactionGuardImpl.performUserActivity(TransactionGuardImpl.java:193)
        at com.intellij.idea.ApplicationLoader$startApp$8.run(ApplicationLoader.kt:239)
        at java.base/java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:783)
        at java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:478)
        at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
        at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:776)
        at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
        at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
        at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:746)
        at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:908)
        at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:781)
        at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:424)
        at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:698)
        at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:423)
        at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
        at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
        at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
        at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
        at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
        at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
2020-03-17 20:29:57,058 [   2942]  ERROR - nsions.impl.ExtensionPointImpl - IntelliJ IDEA 2019.3.3  Build #IU-193.6494.35 
2020-03-17 20:29:57,058 [   2942]  ERROR - nsions.impl.ExtensionPointImpl - JDK: 11.0.5; VM: OpenJDK 64-Bit Server VM; Vendor: JetBrains s.r.o 
2020-03-17 20:29:57,058 [   2942]  ERROR - nsions.impl.ExtensionPointImpl - OS: Mac OS X 
2020-03-17 20:29:57,067 [   2951]  ERROR - nsions.impl.ExtensionPointImpl - Last Action:  
2020-03-17 20:29:57,068 [   2952]  ERROR - llij.ide.plugins.PluginManager - java.awt.HeadlessException 
java.util.concurrent.CompletionException: java.awt.HeadlessException
        at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:314)
        at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:319)
        at java.base/java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:787)
        at java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:478)
        at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
        at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:776)
        at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
        at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
        at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:746)
        at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:908)
        at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:781)
        at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:424)
        at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:698)
        at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:423)
        at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
        at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
        at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
        at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
        at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
        at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: java.awt.HeadlessException
        at java.desktop/java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:208)
        at java.desktop/java.awt.Window.<init>(Window.java:548)
        at java.desktop/java.awt.Frame.<init>(Frame.java:423)
        at java.desktop/java.awt.Frame.<init>(Frame.java:388)
        at java.desktop/javax.swing.JFrame.<init>(JFrame.java:180)
        at com.intellij.openapi.wm.impl.welcomeScreen.WelcomeFrame.<init>(WelcomeFrame.java:48)
        at com.intellij.openapi.wm.impl.welcomeScreen.WelcomeFrame.createWelcomeFrame(WelcomeFrame.java:178)
        at com.intellij.openapi.wm.impl.welcomeScreen.WelcomeFrame.prepareToShow(WelcomeFrame.java:159)
        at com.intellij.idea.IdeStarter.main(ApplicationLoader.kt:510)
        at com.intellij.idea.ApplicationLoader$startApp$8$1.run(ApplicationLoader.kt:240)
        at com.intellij.openapi.application.TransactionGuardImpl.performUserActivity(TransactionGuardImpl.java:193)
        at com.intellij.idea.ApplicationLoader$startApp$8.run(ApplicationLoader.kt:239)
        at java.base/java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:783)
        ... 19 more

I tried setting one of the idea.vmoptions -Djava.awt.headless=false to help it figure out that there is a actually a remote display device, but this did not help matters. Any help welcome. I am sure I am not the only person working from home and hitting this problem.

4

1 回答 1

0

Mac 版 IntelliJ 不使用 X11。启动 IntelliJ 的那一刻,它将显示在您的 MacPro 上。多年来,MacOS 上的 Java 应用程序可以进行 X11 转发是一个很大的误解。

您需要使用 IntelliJ for Linux,在 Linux(可能是 Docker 容器)上运行来进行 X11 转发。

于 2021-02-05T03:21:22.943 回答