java.lang.NoSuchMethodError:org.eclipse.swt.internal.win32.OS.GetForegroundWindow()

时间:2018-04-03 10:18:22

标签: java eclipse swt eclipse-rcp

目前我们正在开发Eclipse RCP应用程序。我正在使用方法

  

OS.GetForegroundWindow()

获取前景窗口。 当我在本地运行应用程序时它工作正常。但是当我们在构建之后运行相同的应用程序时,会出现以下错误。(maven tycho build)

错误:

java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US
Framework arguments:  -clearPersistedState
Command-line arguments:  -os win32 -ws win32 -arch x86_64 -clearPersistedState

!ENTRY org.eclipse.e4.ui.workbench.swt 4 2 2018-04-03 12:31:22.074
!MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.e4.ui.workbench.swt".
!STACK 0
java.lang.NoSuchMethodError: org.eclipse.swt.internal.win32.OS.GetForegroundWindow()

如果有人有解决方案,请告诉我。或者,如果有任何替代方法,我们可以使用而不是 OS.GetForegroundWindow()

Eclipse Bug

中找到了一些相关的参考信息

StackoverFlow参考链接:Stackoverflow Ref link

1 个答案:

答案 0 :(得分:1)

尝试使用此解决方案将shell置于顶部,它正在使用窗口7

public static void forceActive(final Shell shell) {
    shell.getDisplay().asyncExec(new Runnable() {
        public void run() {
            shell.forceActive();
        }
    });
}