java - 使用javac和java执行其他目录下带有外部类的类文件

标签 java javac

我尝试使用 javac 编译我的 javafile javac Main.java -cp ./lib HelloWorld.java ,我得到了这个 javac: file not found: HelloWorld.java > 这是我的java源文件: ./

下的Main.java
    import lib.*;

    public class Main 
    {
        public static void main (String []args)
        {
            HelloWorld hw = new HelloWorld ();
            System.out.println (hw.getMsg ());
        }
    }

和./lib下的HelloWorld.java

package lib;

public class HelloWorld
{
    public String getMsg ()
    {
        return "HelloWorld!";
    }
}

如有任何帮助,我们将不胜感激!

最佳答案

你的命令应该是

javac Main.java lib/HelloWorld.java

您的尝试因以下几个原因而失败:

  • -cp lib(如果需要)应位于源代码路径名之前
  • 类路径不用于查找源文件;它用于查找编译文件。

在这种情况下,由于另一个原因,将类路径设置为 ./lib 是错误的。目录lib实际上对应于HelloWorld类的包名称。如果类路径是 ./lib,则 javajavac 将查找 HelloWorld.java 的编译版本在

   ./lib/lib/HelloWorld.class

关于java - 使用javac和java执行其他目录下带有外部类的类文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44458126/

相关文章:

Java:了解图像栅格

java - 异步任务不起作用

java - 从命令行编译 java 类时找不到符号错误

java - 使用javac编译时的问题

gradle - gradle:如何在运行时定义多个包含调用ant.javac?

Java 逻辑 AND 与 IF

java - 如何将文本从文件移动到文本区域?

java - 为什么这个 javac : File Not Found error?

java - 为什么 javac 甚至不优化简单的代码?

java - (Java) 打印出 application.class@xxxxxxx 的数组元素