我有一个将用作executable.jar 文件的Java 项目。如果我的项目在其 /resources 文件夹中包含一个批处理文件,我如何对我的项目进行编码,以便在运行 executable.jar 时可以在内部调用该批处理文件?
编辑:这是一个 Windows 7 批处理文件
我有一个将用作executable.jar 文件的Java 项目。如果我的项目在其 /resources 文件夹中包含一个批处理文件,我如何对我的项目进行编码,以便在运行 executable.jar 时可以在内部调用该批处理文件?
编辑:这是一个 Windows 7 批处理文件
假设您的批处理文件位于“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
}