找不到Javac命令提示符编译类

时间:2015-05-29 19:32:06

标签: java compiler-errors javac

java的新手,所以用cmd编译弄脏了。为实例化的类获取“找不到符号”。请帮忙! :)

用于数据库查询的MovieDAO类实例化了MovieDetails和MovieInfo。

目录结构:在项目的根文件夹下,让src \ com \ library \ model包含MovieDAO.java,MovieDetails.java,MovieInfo.java。

已编译MovieDetails和MovieInfo。 .class文件位于classes \ com \ library \ model中。这也是MovieDAO类的目标目录。

MovieDAO:

package com.library.model;

import com.library.model.*;

命令提示符位于根文件夹(Project)。输入命令:

javac -classpath C:\Users\Sudipto\Desktop\.....\mysql-connector-java.jar:classes:. -d classes src\com\library\model\MovieDAO.java

编译错误:

....MovieDAO.java:25: error: cannot find symbol
MovieDetails movieDetails = new MovieDetails();
^

与MovieInfo相同。显然,我遗失了一些小事。无法弄清楚是什么。

3 个答案:

答案 0 :(得分:0)

从src目录运行javac并将src \ com \ library \ model.MovieDAO.java更改为com \ library \ model \ MovieDAO.java。

例: Source Dir:D:\〜\ JavaSamples \ src

Classes Dir:D:\〜\ JavaSamples \ classes

所以当你尝试从src目录编译如下:

D:\~\JavaSamples\src>javac -classpath ../classes -d ../classes com\library\model\MovieDAO.java

答案 1 :(得分:0)

确保classes文件夹位于当前目录中,因为您在类路径中只包含:classes:

如果classes文件夹不在当前目录中,则在类路径中包含classes文件夹的绝对(或)相对路径。像

javac -classpath c:\...\connector.jar:.\classes: -d <target>

(or)

javac -classpath c:\...\connector.jar:c:\project\classes: -d <target>

答案 2 :(得分:0)

Windows中的路径分隔符是分号(;),而不是Unix中的冒号(:)。此外,无需将当前目录(。)放在类路径上。如果是我,我会把类路径放在引号中,只是为了确保我不会意外地引用带空格的路径,但那部分由你决定。

如果您希望java编译所有未编译的源代码,请将src添加到类路径中。

javac -classpath "C:\Users\Sudipto\Desktop\.....\mysql-connector-java.jar;classes;src" -d classes src\com\library\model\MovieDAO.java

否则,如果你肯定想要使用已编译的类而不是重新编译MovieDetailsMovieInfo的源代码,那么就离开src。

javac -classpath "C:\Users\Sudipto\Desktop\.....\mysql-connector-java.jar;classes" -d classes src\com\library\model\MovieDAO.java

最后,如果MovieDao位于com.library.model,则无需导入com.library.model.*.