gpt4 book ai didi

java - 自包含 .jar 时启动画面不工作

转载 作者:行者123 更新时间:2023-11-30 09:17:49 25 4
gpt4 key购买 nike

我为 javafx 应用程序使用了闪屏功能。我使用 javafx ant 任务来运行 fx:jar、fx:signjar、fx:deploy 以生成 jar 文件、jnlp 文件、html 文件和 nativeBundle,包括“image”和“exe”。双击打包成 .jar 文件后,splash 运行良好。但是,当我双击应用程序图像文件夹中的 exe 文件或通过运行 .exe 安装文件安装后的快捷方式时,没有启动画面。为什么? exe文件不基于jar文件运行?感谢您的帮助。

最佳答案

我遇到了同样的问题,并在我的 fx:deploy 中尝试了很多可能性(比如添加一个 fx:jvmargfx:jvmuserargfx:splash under fx:info) 在我的 INNO 脚本中,我还尝试通过 javapackager 生成 exe,甚至将图像格式更改为pngjpgbmp,但是当它从独立的 exe 程序包运行时,不会出现 SplashScreen。因此,我创建了自己的替代方案,可以帮助发现相同问题的任何人。

主类:

            SplashScr splash = new SplashScr ();
splash.setVisible(true);
MainFrame mainFrame = new MainFrame();

SwingWorker<Void, Void> worker = new SwingWorker<Void, Void>() {
@Override
protected Void doInBackground() throws Exception {
Thread.sleep(2000);
return null;
}

protected void done() {
splash.setVisible(false);
mainFrame.setVisible(true);
splash.dispose();
mainFrame.startProcess(args);
}
};
worker.execute();

根据您的 MainFrame 加载时间,您可以在 Thread.sleep(2000) 中增加或减少时间,甚至删除它,但它是重要的是这个sleepSwingWorker 中运行,否则 splash 可能不会出现。

SplashScr 类:

public class SplashScr extends JWindow {

public SplashScr () {

ImageIcon image = new ImageIcon(getClass().getResource("SplashScreen.png"));
int width = image.getIconWidth();
int height = image.getIconHeight();
getContentPane().add(new JLabel("", image, SwingConstants.CENTER));
setSize(width, height);
setLocationRelativeTo(null);
}
}

我希望它对遇到同样问题的人有用。

关于java - 自包含 .jar 时启动画面不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18799938/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com