[英]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.