代码之家  ›  专栏  ›  技术社区  ›  MGoBlue93

尝试从命令行编译Java时收到错误

  •  0
  • MGoBlue93  · 技术社区  · 8 年前

    我正试图摆脱IDE的束缚——成为一名懒惰的程序员。在发布之前,我查看了这些网站,但没有任何帮助:

    Error compiling Java from command line Compiling java from the command line Javac "cannot find symbol" http://www.javaprogrammingforums.com/java-ides/16906-trouble-running-java-file-windows-command-prompt.html#post71916

    我有以下指向源文件的路径:

    D: \工作区\ HelloWorld\src\com\dogzilla

    该路径中有两个文件:Start。JAVA

    package com.dogzilla;
    
    public class Start{
    
        public Start() {
    
        }
    
        private static final String S = "Hello World";
    
        public static void main(String[] args) {
    
            HelloWorld hw = new HelloWorld();
            hw.printHelloWorld(S);
        }
    
    }
    

    。。。还有HelloWorld。JAVA

    package com.dogzilla;
    
    public class HelloWorld {
    
        public HelloWorld() {
        }
    
        public void printHelloWorld(String s){
            System.out.println(s);
        }
    
    }
    

    当我将目录更改为 D:\workspace\HelloWorld\com\dogzilla\src\main\java 并运行 javac Start.java ,它错误为:

    Start.java:14: error: cannot find symbol
            HelloWorld hw = new HelloWorld();
            ^
      symbol:   class HelloWorld
      location: class Start
    Start.java:14: error: cannot find symbol
            HelloWorld hw = new HelloWorld();
                                ^
      symbol:   class HelloWorld
      location: class Start
    2 errors
    

    所以我读到您必须指定类路径,因为 package com.dogzilla; 线

    所以我把目录改为 D:\workspace\HelloWorld 并运行 javac -cp com\dogzilla\src\main\java\Start.java (非常有趣的是,tab键完成了路径,所以我知道命令提示符正在查找Start.java),它错误如下:

    javac: no source files
    Usage: javac <options> <source files>
    use -help for a list of possible options
    

    如何编译和运行这个简单的程序?IDE以其他方式隐藏了这一点,我在学习它时遇到了问题。

    1 回复  |  直到 8 年前
        1
  •  1
  •   tima user8609645    8 年前

    您必须做的第一件事是将java代码编译成类文件。这个 javac 命令用于此。

    只要捕获所有必须编译的java文件,就可以从任何地方运行此命令。

    这将起作用:

    [D:\workspace\HelloWorld\src]> javac com\dogzilla\*.java
    

    这也将起作用:

    [D:\workspace\HelloWorld\src\com\dogzilla] java Start.java HelloWorld.java
    

    要运行编译后的代码,请使用 java 命令您必须使用主类的完全限定名,因此必须在根源目录中才能这样做。

    [D:\workspace\HelloWorld\src]> java com.dogzilla.Start
    
    推荐文章