使用Batch程序编译Jar文件

时间:2014-03-13 09:18:04

标签: java windows batch-file

我正在开发一个基本上生成另一个java程序的程序。该程序生成一些文件夹,一个java类,然后生成一个Batch文件来编译新生成的程序。

以下是生成内容的布局

Root folder (PluginGenerator in my case)
  PluginGenerator (Program which creates the new program)
  Bukkit.jar (Compiled with new classes)
  Compiler.bat (gets created when new program is generated)
  data.txt (not used)

  New project/program folder (HelloPlugin in my case)
    data folder
      plugin.yml (to be compressed into jar)
        com
          package
            generated class file (HelloPlugin in my case)
    output folder (.jar file needs to be created here)

因此,一旦在Hello类中生成了在根文件夹中生成的批处理文件。批处理文件需要将HelloPlugin.java编译成类文件,并将包(com.pack)与plugin.yml一起放入jar中。

在我的java程序中找到了包含所有内容的rootfolder的位置,用于在批处理文件中编写正确的目录。

我知道我可以使用内置的JavaCompile编译文件,但我想这样做是为了好玩。

除批处理文件外,一切正常。该类被编译,但它创建的jar只包含带有清单的META-INF文件夹,但不包含plugin.yml或包含该类的包。

我没有使用批处理或使用CommandPrompt进行编译的经验,所以我不确定它为什么不起作用。

以下是生成的批处理文件

@echo off
javac -cp C:/Users/Aiden/Desktop/PluginGenerator/Bukkit.jar C:/Users/Aiden/Desktop/PluginGenerator/HelloPlugin/data/com/pack/HelloPlugin.java
jar cf C:/Users/Aiden/Desktop/PluginGenerator/HelloPlugin/output/HelloPlugin.jar C:/Users/Aiden/Desktop/PluginGenerator/HelloPlugin/data/plugin.yml C:/Users/Aiden/Desktop/PluginGenerator/HelloPlugin/data/com
pause

修改 我想我可能把整个C盘都装进了罐子里。虽然这需要很长时间才能压缩到罐子里,所以并不是真的想要发生。

无论如何,他是一张jar包含的图片。

http://tinypic.com/r/i6frcj/8

1 个答案:

答案 0 :(得分:1)

我修复了它,但在jar命令之前使用了“cd C:/ Users / Aiden / Desktop / PluginGenerator / HelloPlugin / data /”。然后我将jar命令更改为“jar cf C:/something/somethingelse/output/HelloPlugin.jar plugin.yml com”。