gpt4 book ai didi

Java:创建可以从存档中提取自身部分的自解压 jar?

转载 作者:搜寻专家 更新时间:2023-10-31 19:30:34 25 4
gpt4 key购买 nike

我知道如何创建可执行的 .jar 文件。互联网上有很多这样的例子。我想知道的是,是否有人知道可执行 .jar 文件可以自动将其自身的一部分提取到“运行目录”的方法?

所以,而不是:

jar xf TicTacToe.jar TicTacToe.class TicTacToe.properties
java -jar TicTacToe.jar

我只想这样做:

java -jar TicTacToe.jar TicTacToe.class TicTacToe.properties

这基本上是一个自解压安装程序。这是否可能,如果可能,执行此操作需要什么代码

注意:最终,一旦它起作用,我会将其包装到 launch4j 中以模拟 .exe 自解压安装程序。

最佳答案

您可以编写一个主要方法来检查文件是否存在,如果不存在则提取它们(通过将资源流复制到文件)。如果您只需要一组固定的文件(如您的示例中所示),则可以通过以下方式轻松完成:

public class ExtractAndStart
{
public static void main(String[] args)
{
extractFile("TicTacToe.properties");
Application.main(args);
}

private static void extractFile(String name) throws IOException
{
File target = new File(name);
if (target.exists())
return;

FileOutputStream out = new FileOutputStream(target);
ClassLoader cl = ExtractAndStart.class.getClassLoader();
InputStream in = cl.getResourceAsStream(name);

byte[] buf = new byte[8*1024];
int len;
while((len = in.read(buf)) != -1)
{
out.write(buf,0,len);
}
out.close();
in.close();
}
}

也有自解压存档的创建者,但他们通常解压所有内容,然后启动一些内部组件。

这是一篇简短的文章,它是如何工作的:

http://www.javaworld.com/javatips/jw-javatip120.html

它建议使用似乎过时的 ZipAnywhere。但是Ant Installer可能是一个不错的选择。

关于Java:创建可以从存档中提取自身部分的自解压 jar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7168747/

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