繁体   English   中英

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

[英]Building a jar file from .java files in java

您好StackOverflow的成员。

我想使用以下代码在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

因此,如果有人可以向我解释我如何使其仅添加我的班级文件,那将是很大的帮助。

谢谢。

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

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

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

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

另一个提示是,即使在Windows中,您也可以使用unix /路径分隔符来执行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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM