在Jetbrain';上运行java代码传递文件作为输入参数;什么是Intelij理念

在Jetbrain';上运行java代码传递文件作为输入参数;什么是Intelij理念,java,intellij-idea,Java,Intellij Idea,我正在尝试运行一个Java代码,使用on Intelij IDEA传递一个.txt文件作为参数 我继续讨论这个问题,但没有多大帮助 另外,我在另一台计算机上尝试了完全相同的东西(我猜…),并且它工作了,但是在我的个人计算机上,我有一个更新版本的Intelij,一些小东西是不同的。我不知道是否有什么改变或者我做错了什么 这是我的密码: public static void main(String[] args) { // read the n points from a file

我正在尝试运行一个Java代码,使用on Intelij IDEA传递一个.txt文件作为参数

我继续讨论这个问题,但没有多大帮助

另外,我在另一台计算机上尝试了完全相同的东西(我猜…),并且它工作了,但是在我的个人计算机上,我有一个更新版本的Intelij,一些小东西是不同的。我不知道是否有什么改变或者我做错了什么

这是我的密码:

 public static void main(String[] args) {
        // read the n points from a file
        StdOut.println("Args: " + Arrays.toString(args));
        StdOut.println("Args: " + args[0]);
    }
我的配置:

以及输出:

Args: []
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0
    at BruteCollinearPoints.main(BruteCollinearPoints.java:89)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at com.intellij.rt.execution.application.AppMainV2.main(AppMainV2.java:128)

Process finished with exit code 1

如果我在控制台上运行此代码,一切都会正常进行

尝试根据程序参数提供文件名。在每个参数之间留出一个空格。既然你没有提出任何论点,你就面临着这个问题。此外,文件必须与您的项目文件夹位于同一文件夹中。

您应该在“程序参数”部分提供文件路径,而不是如本回答中所述的“重定向输入自”


“重定向输入自”选项将允许您将输入流(stdin)从提供的文件重定向到您的程序

但我想要的恰恰是将文件的内容作为参数传递给我的程序。如果我在“程序参数部分”中传递参数,它可以正常工作。我已经试过了。在这种情况下我得到这个输出:
Args:[/media/home/home/code/courses/coursera-algorithms-part1/week3/programmingAssignment3Collinear/input10.txt]
Args:/media/home/code/courses/coursera-algorithms-part1/week3/programmingAssignment3Collinear/input10.txt
我无法准确理解。我想问题在于文件的路径。这个答案可能会解决你的问题。解释:当我在程序参数上传递文件名时,程序使用路径作为参数。我的参数[0]变成了一个字符串,带有文件的路径,而不是文件的内容。我理解。main将参数保存在字符串数组中。您传递的所有内容都将被识别为字符串。您可以轻松地使用fileoutputstream获取传递文件的内容。你可以在这个链接上找到一个合适的例子。