Java 如何使args函数等于2?因为它只是抛出文件未找到异常
正如JavaDoc中已经提到的,如果希望向程序传递两个参数,则需要从命令提示符(cmd窗口)运行此程序,如下所示:Java 如何使args函数等于2?因为它只是抛出文件未找到异常,java,filenotfoundexception,args,Java,Filenotfoundexception,Args,正如JavaDoc中已经提到的,如果希望向程序传递两个参数,则需要从命令提示符(cmd窗口)运行此程序,如下所示: /** * Compilation : javac Traversal.java * Execution : java Traversal args0 ----- GraphicsMode * : java Traversal args0 args1 ----- TextMode * * Arguments
/**
* Compilation : javac Traversal.java
* Execution : java Traversal args0 ----- GraphicsMode
* : java Traversal args0 args1 ----- TextMode
*
* Arguments : args0 - boardfilename.txt
* args1 - movesfilename.txt
*
* Controls : h - left movement
* l - right movement
* j - down movement
* k - up movement
**/
public static void main(String[] args) throws FileNotFoundException, InterruptedException {
if (args.length == 1) {
GameBoard board = Middleware.parseArgs(args[0]);
Middleware.validateBoard(board);
GraphicsMode.play(board);
}else if (args.length == 2) {
GameBoard board = Middleware.parseArgs(args[0]);
Middleware.validateBoard(board);
String moves = Middleware.readMoves(new Scanner(new File(args[1])));
TextMode.play(board, moves);
}
exit();
}
/**
* Sleep for 4000 microseconds to allow
* the final event sound to finish
* playing and then exits.
*/
public static void exit() throws InterruptedException {
Thread.sleep(4000);
System.exit(0);
}
在哪里
java Traversal args0 args1
换句话说,在命令提示符下以java Traversal boardfilename.txt movesfilename.txt
的形式运行它。如果boardfilename.txt
和movesfilename.txt
与Traversal.class
不在同一位置,请说明它们的完整路径,即
args0 - boardfilename.txt
args1 - movesfilename.txt
如果您在eclipse中运行它,请右键单击Traversal.java>单击运行配置…>将值放入对话框,如屏幕截图所示>单击运行
在这种情况下(即,当您试图从eclipse运行它时),请确保
boardfilename.txt
和movesfilename.txt
位于src
的父文件夹中,它不是一个函数,而是启动程序时键入的命令行参数。而FileNotFoundException
意味着它找不到您指定的文件。就这么简单。我试图打开的文件在我的src文件中,但它应该打开吗?是的,问题不在你发布的代码中,而是在它正在寻找某个文件的代码中。阅读异常,原因是什么?使用绝对文件路径来确定路径。我试图打开的文件在我的src文件中,所以它应该打开吗?不可以。除非您在src文件夹中运行程序。或者指定文件的完整路径。Java不会“在源文件夹中搜索我想要读取的文件”。@ggb667也不例外。当我执行它时,它只是以代码0退出。对不起,我不明白。我添加了一个屏幕截图。我希望,这会有帮助。
java Traversal path-to-boardfilename.txt path-to-movesfilename.txt