gpt4 book ai didi

java - 将文件 exe 包含到 Project Netbeans Java 中

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:12:39 27 4
gpt4 key购买 nike

我想在我的 Netbeans 项目中包含一个文件,我正在使用 Java 语言为 PC 开发一个应用程序。我几乎在网上搜索过,但一无所获。当我编译应用程序时,如果我进入有/dist 的路径,文件 exe 不在这里。非常感谢。

String exec [] = {getClass().getClassLoader().getResource("inc_volume.exe").getPath() };
System.out.println(exec[0]);
Runtime.getRuntime().exec(exec);

更新于 20/08/2014 15.29

我找到了这个从jar中提取的源,但我不知道如何使用:

    java.util.jar.JarFile jar = new java.util.jar.JarFile(jarFile);
java.util.Enumeration enumEntries = jar.entries();
while (enumEntries.hasMoreElements()) {
java.util.jar.JarEntry file = (java.util.jar.JarEntry) enumEntries.nextElement();
java.io.File f = new java.io.File(destDir + java.io.File.separator + file.getName());
if (file.isDirectory()) { // if its a directory, create it
f.mkdir();
continue;
}
java.io.InputStream is = jar.getInputStream(file); // get the input stream
java.io.FileOutputStream fos = new java.io.FileOutputStream(f);
while (is.available() > 0) { // write contents of 'is' to 'fos'
fos.write(is.read());
}
fos.close();
is.close();
}

此处图片:

enter image description here

最佳答案

要将 exe 文件包含到您的项目中,请通过文件系统将此 exe 文件复制到您的 Netbeans 项目的 src 文件夹中。

exe file into your project

当你构建好你的项目后,这个exe文件就会被打包到项目的jar文件中。

exe file packaged into jar file

在运行时运行此 exe,您将需要 to extract this exe file from your jar file .

当这个 exe 文件被解压后,你就可以执行它了。

要从您的 Java 代码启动外部应用程序,我建议使用 Apache Commons Exec:http://commons.apache.org/proper/commons-exec/


更新

下面有示例类演示如何从当前运行的 jar 文件中提取所有 exe 文件。我使用这些 SO 帖子来制作此类:the firstthe second

import java.io.File;
import java.io.IOException;

/**
*
*/
public class TestClass {

/**
* @param args the command line arguments
*/
public static void main(String[] args) throws IOException {

extractExeFiles("C://Temp");

}


/**
* Gets running jar file path.
* @return running jar file path.
*/
private static File getCurrentJarFilePath() {
return new File(TestClass.class.getProtectionDomain().getCodeSource().getLocation().getPath());
}

/**
* Extracts all exe files to the destination directory.
* @param destDir destination directory.
* @throws IOException if there's an i/o problem.
*/
private static void extractExeFiles(String destDir) throws IOException {
java.util.jar.JarFile jar = new java.util.jar.JarFile(getCurrentJarFilePath());
java.util.Enumeration enumEntries = jar.entries();
String entryName;
while (enumEntries.hasMoreElements()) {
java.util.jar.JarEntry file = (java.util.jar.JarEntry) enumEntries.nextElement();
entryName = file.getName();
if ( (entryName != null) && (entryName.endsWith(".exe"))) {
java.io.File f = new java.io.File(destDir + java.io.File.separator + entryName);
if (file.isDirectory()) { // if its a directory, create it
f.mkdir();
continue;
}
java.io.InputStream is = jar.getInputStream(file); // get the input stream
java.io.FileOutputStream fos = new java.io.FileOutputStream(f);
while (is.available() > 0) { // write contents of 'is' to 'fos'
fos.write(is.read());
}

fos.close();
is.close();
}
}
}
}

关于java - 将文件 exe 包含到 Project Netbeans Java 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25403420/

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