繁体   English   中英

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

[英]Java Eclipse: Running a program with a file argument and external JAR

我正在尝试运行以下脚本: https : //algs4.cs.princeton.edu/15uf/UF.java

为此,我有:

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

2)按照他们网站上的说明,我将他们的JAR文件保存在

/usr/local/algs4/algs4.jar

3)右键单击项目,转到“属性”,然后在“库”选项卡下有两个字段选项,“模块路径”和“类路径”。 在突出显示Modulepath的情况下,我单击了Add External JARs,然后导航到algs4.jar的位置。 然后,我对Classpath进行了相同的操作,因为我认为其中之一必须正确。

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

所以我把这个保存在~/Documents

5)在“运行”选项下,选择“运行配置”,单击“参数”选项卡,然后键入/home/me/Documents/tinyUF.txt

6)现在,当我运行程序时,什么也没有发生,这意味着它绝对没有显示运行的迹象,唯一的例外是,当我将鼠标悬停在“运行”按钮上时,它显示“正在运行(已在运行)”。

7)因此,仅出于测试目的,我在主函数System.out.println("TEST");的第一行中插入了代码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告诉程序从当前位置向下钻取,查找home目录,me目录等。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM