生成包含代码的jar文件旁边的文件

时间:2015-11-04 18:53:16

标签: java file jar

我的应用程序有一个jar,它应该在它旁边创建一个文件。所以在文件夹中我会有这个:

import spock.lang.* @Unroll class ExampleSpec extends Specification { def "minimum of #a and #b is #c and maximum of #a and #b is #d"() { expect: Math.min(a, b) == c Math.max(a, b) == d where: a | b || c | d 3 | 7 || 3 | 7 5 | 4 || 5 | 4 // <--- both c and d fail here 9 | 9 || 9 | 9 } }

我想的很简单......不。我迷路了...我有这样的代码:

Source 
 |_ MyApplication.jar
 |_ generatedFile.txt

我尝试了不同的组合,googled很多,我迷路了...如果我得到例如

URL location = MyClass.class.getProtectionDomain().getCodeSource().getLocation();
        String path = location.getFile().substring(0, location.getFile().lastIndexOf("/MyContext"));
        File file = new File(fileName + ".txt");
        File file1 = new File(path + "/MyFileName.txt");
        File file2 = new File(path.substring(1) + "/MyFileName.txt");

等等,路径是正确的...但文件没有生成...只有工作案例是第一个,但是它位于jar内部我不想要那个。

我还尝试使用

将现有文件移到外面
file1.getPath();
file2.getAbsolutePath();

但这对我没有任何帮助..

有人可以帮我吗?并向我解释为什么以上的例子不起作用?谢谢..

1 个答案:

答案 0 :(得分:2)

调用File file = new File("my path string");只是在内存中创建一个Java File对象实例。您需要为您要定位的实际文件写一些内容。创建空文件的最简单方法是调用file.createNewFile()