我有在命令行中运行程序的指令,例如:
java SetTest < alice30.txt
我想知道如何在Eclipse中这样做。我试着把它放在运行配置中,如下所示:
我不知道的另一件事是把这个文件放在哪里(alice30.txt)。这是在项目的根目录还是源文件所在的src文件夹中?
我知道这些是初学者的问题,但我很困难,需要帮助。
编辑:正如@Kane建议我传递文件并打开流。代替:
Scanner in = new Scanner(System.in);
我现在用:
Scanner in = new Scanner(new File("alice30.txt"));
eclipse根目录是项目的基本目录(即,不是直接在项目下的src /目录。)
拥有txt,图形等“资源”文件夹通常是一种很好的风格。
您可以只传递文件名并自行打开流,而不是尝试传递流。
您在Eclipse中所做的事情不起作用的原因是因为您的命令提示符/ shell / dos / bash /无论是处理从文件中创建输入流的处理方式。 Eclipse不会这样做。因此,从命令行:< alice.txt
的意思是“运行没有参数的程序,并创建一个到system.in的流”,而在Eclipse中执行此操作意味着“使用两个参数运行此程序”
您可以在参数中传递完整的文件路径(例如c:/.../ alice30.txt))
你需要这样做:add:import java.io.IOException; import java.nio.file.Paths;
然后:将“Scanner in = new Scanner(System.in);”替换为“Scanner in = new Scanner(Paths.get(”alice30.txt“));” 。你还需要这样做:“public static void main(String args [])抛出IOException”
通过这个链接/页面的信息和几次尝试,我找到了一种在eclipse Run - > Run Configurations中使用本地路径传递参数和文件的方法,尽管不推荐使用Kane说。
对于我的情况:我需要做“$ java someClass tinyW.txt <tinyT.txt”(这是来自Robert Sedgewick的算法书中的一个例子)
在我的例子中,“tinyW.txt”是一个参数,所以在eclipse环境中,你可以在Run - > Run Configurations - > Arguments - > Program arguments:/ local address / tinyW.txt中设置。对于我的Ubuntu:/home/****/tinyW.txt“<tinyT.txt”是一个管道到主参数的文件,因此您可以在“运行 - > RUn配置 - >公共”中设置路由和文件,单击“输入文件”,使用“文件系统”图标并从本地计算中选择文件。见图。所以在输入文件中:/local_address/tinyT.txt。我的情况是:/home/***/tinyT.txt。希望它也适合你。