gpt4 book ai didi

java - 如何从另一个java应用程序内部启动资源jar - 解决方案

转载 作者:行者123 更新时间:2023-12-02 08:03:08 24 4
gpt4 key购买 nike

已编辑解决方案(如下...)

我有一个启动画面,它被打包到它自己的 jar 中。它有效。

我可以通过以下方式从另一个 java 应用程序内部调用 Splash.jar:

Desktop.getDesktop().open(new File("/Applications/Eclipse/Splash.jar"));

而且效果很好。但是,这非常有限。因此,我在新应用程序中创建了一个 res 文件夹,并将 Splash.jar 拖入其中。

现在,我如何从新应用程序的主类中调用/运行它?

我查看了所有相关帖子,但没有看到明确的方法...

谢谢

<小时/>

解决方案:

我找到了解决方案 - 如此简单。首先,感谢 avjava.com 提供的清晰而出色的教程( Run Another Jar from a Jar )。所以,现在我可以像希望的那样运行 Splash(或其他 .jar)。

答案就在这里——以完整代码的形式发布:

package test;

import java.io.IOException;

public class RuntimeExecTest1 {

public static void main(String[] args) {
try {
System.out.println("TextEdit I hope");
Runtime runTime = Runtime.getRuntime();

Process process = runTime.exec(
"java -jar /your directory/your app.jar");

try {
Thread.sleep(5000); // keep in open 5000ms
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Closing TextEdit, I hope");
process.destroy(); // kill the process of running the .jar
} catch (IOException e) {
e.printStackTrace();
}
}
}

最佳答案

我们不知道您现有的启动画面是如何工作的...

Java AWT 对启动屏幕的支持:

如果您使用 Java 内置的启动屏幕支持(如 SplashScreen Javadoc 中指定),那么您需要使用命令行开关,或者更好的是,修改您的 MANIFEST 文件以引用您的启动屏幕:

Manifest-Version: 1.0
Main-Class: Test
SplashScreen-Image: filename.gif

我不知道对于这种特殊情况,您是否可以引用不同 JAR 中的文件。在最坏的情况下,您可以解压现有的 JAR(它们只是 ZIP 文件)并获取图像文件,以便将其包含在您自己的主 jar 中。

可能是自定义启动画面:

如果您的 Splash 是使用自定义代码创建的,那么您需要有关如何加载它的文档。至少,您需要将 Splash.jar 添加到应用程序的类路径,并从您的应用程序调用必要的方法或加载适当的资源。

添加到类路径的.jar 文件中包含的所有资源和类都可以从您的应用程序中获取。

关于java - 如何从另一个java应用程序内部启动资源jar - 解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8593570/

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