告诉.jar文件在桌面上制作文件而不是在其自身内(java)mac

时间:2016-03-23 04:33:16

标签: java jar properties system

我有一个程序,其中包含以下代码行:

//String s = fileName;
File location = new File(s);

然后我

//String contents = whatIWantToPrint;
OutputStream print = new FileOutputStream(location);
    print.write(contents.getBytes());
    print.close();

告诉程序将字符串内容打印到文件s。但是,该文件出现在程序所在的文件夹中,而不是程序所在的目录中。例如,如果程序在人员桌面上,我希望它在桌面上制作文件。

我在终端中使用了以下行来使程序成为jar文件(mac):

jar -cvmf manifest.txt Generate.jar *.class

有人告诉我这样做:

String dir = System.getProperty("home.dir"+"/Desktop");
    String filePath = dir + File.separator + ss + ".txt";
    File location = new File(filePath);

但我不确定这是否会使程序在桌面上创建文件,它也会引发安全异常,因此它无法正常工作

2 个答案:

答案 0 :(得分:0)

你可以试试这个

         String DEFAULT_USER_DIR = System
        .getProperty("user.home"+"/Desktop");
         File location = new File(DEFAULT_USER_DIR);
         user.dir   returns  User's current working directory

请在此处查看javadoc

答案 1 :(得分:0)

你应该这样做:

String s= System.getProperty("user.home");

并追加路径分隔符和文件名

String filePath = s + File.separator + "desktop" + File.separator + "myFile.txt";