将文件exe包含到Project Netbeans Java中

我想在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();
}

此处图片:

解决方法:

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

建立项目后,此exe文件将打包到项目jar文件中.

在运行此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-设置文本字段的禁用背景颜色


下一篇:java-如何将两个整数值作为年和月添加到日期变量?