如何从命令行运行java代码,该代码包含2个不同包中的源代码?

时间:2012-11-27 05:37:23

标签: java command-line classpath command-prompt

所以我想运行一个名为WordFrequencyCounter的类,它嵌套在文件夹中:C:\ Users \ Mike \ Documents \ Computer Science \ AI \ Machine Learning \ 175 \ Assignment 2 \ src \ ir \ assignments \ two \ b

但是当我进入该文件夹并运行时:

javac WordFrequencyCounter.java

它给了我一个错误,因为它说它无法找到 import ir.assignments.two.a.Frequency; 特别是它说包ir.assignments.two.a不存在,但这个文件位于:

C:\ Users \ Mike \ Documents \ Computer Science \ AI \ Machine Learning \ 175 \ Assignment 2 \ src \ ir \ assignments \ two \ a

我还尝试从文件夹中调用javac WordFrequencyCounter.java:C:\ Users \ Mike \ Documents \ Computer Science \ AI \ Machine Learning \ 175 \ Assignment 2

但这也不起作用。所以我想要的是能够编译和运行WordFrequencyCounter,然后为它提供一个位于的输入文件 从命令行C:\ Users \ Mike \ Documents \ Computer Science \ AI \ Machine Learning \ 175 \ Assignment 2。我可以从IDE执行此操作,但无法通过命令行使其工作。

我认为这是一个与类路径相关的问题但是我找不到任何有用的东西用于我的特定示例,而且我尝试过的任何工作都没有。 enter image description here

这是WordFrequencyCounter的主要方法:

public static void main(String[] args) throws FileNotFoundException {
    File file = new File(args[0]);

    List<String> words = Utilities.tokenizeFile(file);

    List<Frequency> frequencies = computeWordFrequencies(words);
    Utilities.printFrequencies(frequencies);
}

1 个答案:

答案 0 :(得分:2)

转到src文件夹并运行

javac -d . ir/assignments/2/b/MainClass.java

并使用java ir.assignments.2.b.MainClass来运行它。