我创建了这个java项目,它基本上从用户确定的excel文件中获取数据,并使用Syste.out.println()来显示结果。它在eclipse中按照我的要求工作,但是当我导出为.jar文件时,它无法正常工作。它会提示输入excel文件位置,但不显示输出,甚至不显示错误。我不知道如何从终端进行操作,所以我通过双击它来运行它。此外,我希望用户选择他们想要的任何excel文件,那么在提示时他们应该记下什么位置?现在,excel文件与项目位于同一目录中。所以只需要excel文件的名称就足够了,但是如果它不在目录中,那么我该如何显示它的位置呢?
谢谢
答案 0 :(得分:1)
首先,在您的JAR文件中,文件META-INF / MANIFEST.MF必须包含您的主类(即具有main()
方法的类),其行如下所示:
Main-Class: mypackage.MyMainClass
确保Eclipse中的设置在生成JAR文件时生成此行。
您可以使用java -jar yourapp.jar
从终端运行它但是我假设您需要在类路径中包含一些额外的库,并使用-cp
开关。
工作目录通常是运行应用程序的目录。如果要指定不同的路径,则必须相对于该路径或绝对路径。
Windows中的绝对路径类似于:“C:\ mydatafolder \ myexcelsheet.xls”
Unix中的绝对路径类似于:“/ home / myaccount / mydatafolder / myxcelsheet.xls”
答案 1 :(得分:0)
您需要阅读System.in以获取文件路径,其功能如下:
private static String getFilePath () {
String filePath = null;
while (true) {
System.out.println("Please input the path of the file:");
try {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
filePath = br.readLine();
File file = new File(filePath);
if (!file.exists()) {
System.out.println("Sorry, invalid file path. Please try again.");
} else {
return filePath;
}
} catch (IOException e) {
e.printStackTrace();
System.out.println("Sorry, unexpected error happened, Please try again.");
}
}
}