我试图通过eclipse导出java程序,但我遇到了一些问题:
我希望能够通过命令行运行它并将参数传递给它,特别是属性文件的位置。
我尝试使用main作为启动配置将其导出为可运行的jar文件,并使用另一个运行配置,其中参数在运行时传递。
public static String currentStatus;
public static String filename = "etc/ryanair.properties";
public boolean isDuplicate = true;
public static void main(String args[]) throws IOException {
String file = args[0];
Properties config = new Properties();
config.load(new FileInputStream(file));
System.out.println("====================BEGIN=======================");
HtmlParser htmlparse = new HtmlParser(config);
List<String> list = htmlparse.parse();
debug(list);
基本上我想传递属性文件的位置,即etc/ryanair.properties
,但我一直收到以下错误:
Exception in thread "main" java.io.FileNotFoundException:
etc/ryanair.properties (No such file or directory)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:120)
at java.io.FileInputStream.<init>(FileInputStream.java:79)
at com.beezer.twitter.traffic.Main.main(Main.java:17)
有趣的是,如果我使用变量filename
而不是file
,我不需要传递参数,我会收到相同的错误。
我可以在eclipse中运行它们,无论是将文件位置作为固定变量,还是通过运行配置传入,而不是通过命令行传递。
etc
文件夹位于eclipse中src
文件夹的子目录中。
有谁能看到我在这里做错了什么?
答案 0 :(得分:0)
在您的代码中,它将在etc /文件夹中查找文件ryanair.properties。此etc文件夹应位于当前路径中,而不是.jar的文件夹
也许您想在.jar文件中创建属性文件,您应该将属性文件作为资源文件(在eclipse中,右键单击文件,构建路径 - > gt;添加到构建路径),然后使用HtmlParser.class.getResource("/ryanair.properties").getPath()
获取文件名。注意资源的根路径。
关于当前路径,这是当前路径?在linux中,您可以使用pwd
,在Windows中,您可以使用echo %cd%
。