从java中的.java文件构建jar文件

时间:2013-10-16 09:21:01

标签: java

HelloOverflow的成员。

我想在我的java应用程序中使用以下代码构建一个jar文件:

    private void javaToClass()
{
    try {
        String path = new File(".").getCanonicalPath();
        String command = "cmd /c javac " + path + "\\files\\*.java";

        System.out.println("Building class files...");
        Runtime.getRuntime().exec(command);
        System.out.println("Class files have been built");
    } catch (IOException e) {
    }
}

private void classToJar()
{
    try {
        String path = new File(".").getCanonicalPath();
        String command = "cmd /c jar cf Built.jar " + path + "\\files\\*.class";

        System.out.println("Building jar file...");
        Runtime.getRuntime().exec(command);
        System.out.println("Jar file has been built");
    } catch (IOException e) {

    }
}

因此,这会构建jar文件,但不会将类文件添加到jar文件中。相反,它将添加我的系统目录: http://i.stack.imgur.com/cTrbO.png

所以,如果有人能向我解释我将如何制作它只添加我的课程文件,那将是一个很大的帮助。

感谢。

2 个答案:

答案 0 :(得分:0)

您可以使用java.util.jar包执行此操作。

http://docs.oracle.com/javase/6/docs/api/java/util/jar/package-summary.html

答案 1 :(得分:0)

jar命令应该使用-C参数吗?这是我的jar语法,我也提供了一个明确的清单文件。您可以将其保留,并从选项列表中删除m选项。

jar cvfm ./lib/MyLib.jar ./classes/META-INF/MANIFEST.MF -C ./classes。

另一个提示是,即使在Windows中也可以使用unix / path分隔符来执行java命令和java fileio操作。这是保持程序Unix和Windows兼容的好方法。

双击检查shellexec进程的工作目录,你可以给出一个明确的工作目录(当前目录)。或者给所有文件参数(jarname,classes文件夹)提供绝对文件路径 http://docs.oracle.com/javase/7/docs/api/java/lang/Runtime.html#exec%28java.lang.String[],%20java.lang.String[],%20java.io。文件%29