2

我有一个将用作executable.jar 文件的Java 项目。如果我的项目在其 /resources 文件夹中包含一个批处理文件,我如何对我的项目进行编码,以便在运行 executable.jar 时可以在内部调用该批处理文件?

编辑:这是一个 Windows 7 批处理文件

4

1 回答 1

0

假设您的批处理文件位于“com.mycompany.MyBatch.bat”的类路径中

您首先需要将文件复制到tmp,然后使其可执行,然后运行它:

public static void main(String[] args) throws Exception {
    final File tmp = File.createTempFile("myBatch", "batch");
    try (final ReadableByteChannel channel = Channels.newChannel(App.class.getResourceAsStream("/com/mycompany/MyBatch.bat"));
            final FileChannel fileChannel = new RandomAccessFile(tmp, "rw").getChannel()) {
        final ByteBuffer bb = ByteBuffer.allocate(1024);
        while (channel.read(bb) > 0) {
            bb.flip();
            fileChannel.write(bb);
            bb.clear();
        }
    }
    tmp.setExecutable(true);
    //run script
}
于 2013-09-25T16:39:25.807 回答