2015-05-07 55 views
0

我正在编写一个java应用程序,我在其中自动导入外部csv文件在后台执行计算。但问题是我在我的java程序中使用“绝对”文件路径,生成的jar文件不能在另一台计算机上工作。无论如何,在Java中使用一种“工作目录路径”,以便我仍然可以在另一台计算机上运行该jar文件,只要我把我想导入到jar文件所在的文件夹中的csv文件?关于在java应用程序中引用外部文件

谢谢!

+0

你可以通过目录名称作为命令行参数。 – Kishore

+0

@Kishore我是java编程新手。如果我不想输入目录或在文件选择界面中选择文件,而是在应用程序中添加按钮,以便我可以简单地按下按钮以自动导入文件,该怎么办? – xyin

+0

你如何运行jar文件? – subash

回答

0

您可以使用它的名字一样

try (BufferedReader br = new BufferedReader(new FileReader("text.txt"))) { 
    String line; 
    while ((line=br.readLine())!=null) { 
     System.out.println(line); 
    } 
} catch (Exception e) { 
    e.printStackTrace(); 
} 
读取文件

这里text.txt应该在执行jar的同一个工作目录中。

您也可以通过命令行读取目录名称,使用命令行参数,像

public static void main(String[] args) { 

    //check if there were any command line arguments 
    if (args.length > 0) { 
     // args[0] is the first command line argument unlike C where args[0] would give u the executable's name 
    } else { 
     System.err.println("Usage: java -jar <jar_name> [directory_names..]"); 
    } 
} 

你也可以有一个配置文件,如属性文件中读取目录名。

+0

非常感谢!很有帮助! – xyin

0

新的文件( “”)给你的相对路径

,你可以写这样的相对路径:

File file = new File(".\\CSVs\\myfile.csv"); 
0

System.getProperty(“user.dir”)将返回工作目录。

System.getProperty( “user.dir来”)+ “\\ myfile.txt的”

更多的信息在这里:system properties, oracle docs

相关问题