1

我能够按照这里的教程并将其转换为 Maven 应用程序。

我得到了正确的加载部分,但是当我尝试使用它时,它找不到合适的 swt 类(从 Windows 64 运行时)。我是在一个 Maven 项目上做的。这是 Windows 64 模块的相应 pom 的相关部分:

            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>nbm-maven-plugin</artifactId>
                <extensions>true</extensions>
                <configuration>
                    <!-- To have the jar plugin pickup the nbm generated manifest -->
                    <useDefaultManifestFile>true</useDefaultManifestFile>
                    <moduleType>normal</moduleType>
                    swt.windows.64/1</codeNameBase>
                    <publicPackages>
                        <publicPackage>org.eclipse.swt</publicPackage>
                    </publicPackages>
                </configuration>
            </plugin>

我翻译成 org.eclipse.swt.*。这似乎是一个 Maven 模块问题,因为它已经尝试从正确的模块加载。

Caused: java.lang.ClassNotFoundException: org.eclipse.swt.SWT starting from ModuleCL@25e0dee5[djproject.core] with possible defining loaders [ModuleCL@6783113b[swt.windows.64]] and declared parents [ModuleCL@32821bf7[org.netbeans.api.annotations.common]]

Caused: java.lang.NoClassDefFoundError: org/eclipse/swt/SWT
    at chrriis.dj.nativeswing.swtimpl.core.SWTNativeInterface.initialize_(SWTNativeInterface.java:213)
    at chrriis.dj.nativeswing.swtimpl.NativeInterface.initialize(NativeInterface.java:71)
    at chrriis.dj.nativeswing.swtimpl.core.SWTNativeInterface.open_(SWTNativeInterface.java:337)
    at chrriis.dj.nativeswing.swtimpl.NativeInterface.open(NativeInterface.java:100)
    at synamicd.windows64.support.Windows64BrowserProvider.initialize(Windows64BrowserProvider.java:25)

任何帮助都非常受欢迎!

编辑: 代码可在此处获得。

4

1 回答 1

1

当我尝试在 bitbucket 位置构建应用程序时,它的构建顺序表明应用程序中没有使用任何 swt 模块 - http://screencast.com/t/LMxIPy6A6ZUL

于 2012-12-22T07:37:18.970 回答