相关疑难解决方法(0)

如何判断我是在64位JVM还是32位JVM(从程序中运行)?

如何判断我的应用程序运行的JVM是32位还是64位?具体来说,我可以访问什么功能或偏好来在程序中检测到这个?

java 64-bit java-native-interface jvm 32-bit

552
推荐指数
8
解决办法
63万
查看次数

如何使用在所有平台上运行的SWT创建可执行JAR?

SWT附带一个基础JAR和每个平台一个特定的JAR(Windows,Linux/32位,Linux/64位,Mac,AIX,...).如何创建可在运行时选择正确平台JAR的可执行JAR?

[编辑]我想在一个子目录中提供所有平台JAR,main()然后修改类加载器.有没有人试过这个?

java executable swt portability

12
推荐指数
2
解决办法
2万
查看次数

适用于不同平台的SWT罐

我在swing应用程序中使用JWebBrowser.本课程属于DJ Project.它需要swt jar来执行.现在我已将swt jar for windows包含在应用程序的jar包装中.我想知道如何在同一包装中包含用于linux/mac的swt jar?我正在使用ant来构建应用程序jar.我应该为不同的平台构建不同的swt jar吗?

java ant swing swt cross-platform

7
推荐指数
1
解决办法
5268
查看次数

将视频嵌入JFrame?

我一直在做很多研究,并试图找到一个指南,可以教我如何正确地将YouTube视频直接嵌入到我的视频中JFrame.我已经阅读了YouTube API上的所有Google Developers指南,但找不到我想要做的事情.

我正在尝试将YouTube视频直接嵌入到JFrame我的主要方法中使用init.例如:

/**
 * Main
 * @param args
 * @throws IOException
 */
public static void main(String[] args) throws IOException {
    try {
        UIManager.setLookAndFeel(new NimbusLookAndFeel());
    } catch (UnsupportedLookAndFeelException ulafe) {
        Loader loader = new Loader();
        loader.doFrame();
    }
    Start Loader = new Start();
    Loader.setVisible(true);
}

/**
 * Start
 * @throws IOException
 */
public Start() throws IOException {
    super("Ryan's Client Launcher version: '0.0.1'");
    try {
        getContentPane().setBackground(Color.BLACK);
        setBackground(Color.BLACK);

        BufferedImage image39 = ImageIO.read(getClass().getResourceAsStream("\\jaggl\\igs\\39.png"));

        this.setIconImage(image39);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setSize(new Dimension(launcherWidth, …
Run Code Online (Sandbox Code Playgroud)

java youtube-api

7
推荐指数
1
解决办法
2万
查看次数

在执行期间加载资源的问题

这是潜在问题的背景,我正在与一个使用Swt库的项目小组合作,我正在尝试打包软件进行部署.事实证明,SWT它非常依赖于平台/架构.我希望能够将所有六个jar(linux,mac,win和32/64位)打包到同一个包中,并根据系统使用相应的库.我意识到这是一个艰难的挑战,但转换到Swing(或其他任何东西)现在并不是一个真正的选择.

我找到了许多相关主题(@Aaron Digulla的主题@ mchr的主题),它为我提供了有关手头问题的宝贵见解.我试图落实@Alexey罗曼诺夫提出的解决方案在这里.有一点不同,因为loadSwtJar()他提出的方法不是静态的,我实例化对象,然后紧接着,在对对象做任何其他事情之前运行方法.

看起来装载过程无法正常工作.我对此声明的推理如下:

  • 如果Swt从可执行jar文件的类路径中删除所有jar,则Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/swt/events/MouseListener抛出由以下原因引起的:java.lang.ClassNotFoundException: org.eclipse.swt.events.MouseListener

对我来说,这意味着在类路径中找不到库,我错了吗?

  • 如果swtjar类保留在类路径上,则系统在执行期间使用第一个jar文件.这意味着如果gtk-linux-x86_64恰好是jar列表中的第一个swt jar,那么无论系统是win32还是Mac OSX,系统都会尝试使用它.

我试图添加一些输出来查看该loadSwtJar()方法是否选择了正确的jar,并且输出似乎在我尝试的所有平台上都正确,因为选择了正确的包(并且文件确实存在于runnable jar中).但是仍然没有加载正确的库因此导致执行错误: Exception in thread "main" java.lang.reflect.InvocationTargetException由ex引起:( Caused by: java.lang.UnsatisfiedLinkError: Cannot load 32-bit SWT libraries on 64-bit JVM 请注意,如果我更改build.xml文件上64位和32位swt库的出现顺序,这是我在Linux机器上出现的错误)

那么,这里的问题似乎是什么?我是否错过了一些细节,或者根本无法检查系统属性并相应地加载适当的库?

下面是我的构建文件的摘录,认为它可能有助于找到问题的根源.

提前致谢,


编辑:经过与同事的长时间调试,问题得到解决(除了我在这里提到的关于MacOS上的线程管理的烦人的错误).它涉及到使用ANT构建进行调整以及编写主类的方式.(事实证明,主类是从SWT库扩展和实现引用,这意味着代码根本不会编译,用另一个类包装主类并从那里加载SWT jar似乎已经足够了解决这个问题)

感谢所有贡献的人,特别是@Aaron.非常感谢!

java swt cross-platform build

5
推荐指数
1
解决办法
4600
查看次数

为多平台 SWT 应用程序为每个平台构建一个 jar

这个话题已经有几个问题了,但似乎没有一个能正常工作。

以下是它们的列表:

我的要求是构建一个 ant 脚本,为每个平台创建一个 jar,即一个用于 Windows x86,一个用于 Windows x64、Linux x86/x64 等等。

有没有人有任何进一步的见解?

使用上述方法,我无法产生可行的解决方案。它要么以未自动加载 SWT jar 文件或未包含在类路径中而结束。

如果有人能提出一个工作示例(最好包括完整的源代码),那就太好了!

java ant swt jar multiplatform

5
推荐指数
1
解决办法
1110
查看次数

SWT是否分发适用于任何支持的操作系统的JAR?

SWT项目目前维持对每个支持的操作系统一个分配.例如:

  • swt-3.4.2-win32-win32-x86.zip
  • swt-3.4.2-gtk-linux-x86.zip
  • swt-3.4.2-carbon-macosx.zip

是否有正确的Thing™可分发,无论应用程序运行在哪个操作系统上?

swt jar

4
推荐指数
1
解决办法
761
查看次数