的Java的Eclipse:运行程序与文件参数和外部JAR

我试图运行下面的脚本:https://algs4.cs.princeton.edu/15uf/UF.java的Java的Eclipse:运行程序与文件参数和外部JAR

要做到这一点,我有:

1)打开Eclipse中,提出了一个新的项目命名为UF,并创建了一个名为UF的新类,并在该类的内部粘贴了上述链接中的代码。

2)通过在其网站上的说明,我

/usr/local/algs4/algs4.jar 

3)用鼠标右键单击该项目,赴属性下保存自己的JAR文件和库选项卡下有两个选项字段ModulePath进行和Classpath。使用Modulepath突出显示,我单击添加外部JAR并导航到algs4.jar的位置。然后我对Classpath也做了同样的事情,因为我认为其中一个必须是正确的。

4)该文件是用于输入到程序:https://algs4.cs.princeton.edu/15uf/tinyUF.txt

所以我保存这个~/Documents下。

5)在Run选项下,我选择Run Configurations,单击Arguments选项卡,然后键入/home/me/Documents/tinyUF.txt

6)现在,当我运行程序时什么都没有发生,我的意思是它绝对没有显示运行的唯一例外,当我将鼠标移到运行按钮上时它说“运行(已经运行)” 。

7)所以仅仅为了测试的目的,我在主函数System.out.println("TEST");的第一行插入,这一次当我运行它时,它显示Eclipse底部的控制台并打印TEST。 8)如果我将System.out.println("TEST");行向下移动一行,以便int n = StdIn.readInt();先运行,那么控制台将显示但没有打印,程序也不会停止。

有关发生了什么的任何想法?

[编辑:我想我应该注意到我在Linux Mint 18.3 Cinnamon上运行Oxygen.2 Release(4.7.2)。当我按照指示安装Eclipse时,他们似乎有点奇怪,但我仍然依照他们:它指示我将文件夹/root/eclipse安装到该文件夹​​,所以我做到了。]

[更新:与评论者,我发现我不得不将输入文件路径添加到启动配置中。现在我已经这样做了,程序正确地读入txt文件并输出正确的结果,除了它从不打印最后一行并永不终止程序。看代码:

public static void main(String[] args) { 

int n = StdIn.readInt();

UF uf = new UF(n);

while (!StdIn.isEmpty()) {

int p = StdIn.readInt();

int q = StdIn.readInt();

if (uf.connected(p, q)) continue;

uf.union(p, q);

StdOut.println(p + " " + q);

}

StdOut.println(uf.count() + " components");

}

当代码运行时的行为是,它成功完成while循环,但从未达到行StdOut.print]ln(uf.count() + " components");

回答:

默认情况下,eclipse根目录是项目的基础目录。因此,如果您在此处以调试模式运行,则您的参数需要包含绝对路径(以驱动器号开头),例如C:/usr/local/algs4/algs4.jar,或者您需要将文件放在运行程序的同一文件夹中。

只是给/home/me/Documents/tinyUF.txt告诉程序从那里它是目前,寻找主目录,我的目录下钻..等

它总是更直接,更安全给的绝对路径。如果路径将变化/动态,则允许jar接受参数。检查main()中的参数并将其设置为File inputFile = arg[0]变量,然后以此方式处理该文件。

以上是 的Java的Eclipse:运行程序与文件参数和外部JAR 的全部内容, 来源链接: utcz.com/qa/265375.html

回到顶部