我的应用程序有一个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();
但这对我没有任何帮助..
有人可以帮我吗?并向我解释为什么以上的例子不起作用?谢谢..
答案 0 :(得分:2)
调用File file = new File("my path string");
只是在内存中创建一个Java File
对象实例。您需要为您要定位的实际文件写一些内容。创建空文件的最简单方法是调用file.createNewFile()
。