java - 为什么这不能编译?

标签 java compilation

我有这些文件:

c:\MY_SOURCES\AClient.java
c:\MY_SOURCES\Pluto.java
c:\MY_SOURCES\com\Classes\Pluto.class

进入 AClient.java 我有

import com.Classes.*;
Pluto p = new Pluto();

当我编译文件时:

javac -classpath . AClient.java

编译器告诉我它无法访问 Pluto 作为错误的源文件 Pluto.java ...但是如果我移动 Pluto.java远离 c:\MY_SOURCES 进行编译。

最佳答案

您的源文件夹应该反射(reflect)您的包结构。如果没有,javac 就会感到困惑。理想情况下,您编译的 .class 文件夹应该位于与源文件夹不同的根目录中。

所以

c:\MY_SOURCES\AClient.java (assuming in the default package)
c:\MY_SOURCES\com\Classes\Pluto.java

c:\MY_COMPILED\com\Classes\Pluto.class

javac -classpath=c:\MY_COMPILED -d 
c:\MY_COMPILED\ c:\MY_SOURCES\AClient.java

关于java - 为什么这不能编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3091260/

相关文章:

java - 数组与 Java 集合框架中的任何集合之间的区别?

java - 下载由 java web 服务 (POST) 流式传输的 pdf

java - 尝试在 java 中处理来自浏览器的 HTTP CONNECT 请求

c - 错误: implicit declaration of function 'g_slist_free_full'

java - 从 HashMap<Enum, Object> 返回随机值

javascript - 压缩后的 Java String 的长度与作为 WebSocket 消息发送时的 content-length 不相等

C undefined reference - 不是名称修改

compilation - 据称 Arduino 草图正在编译/上传,但在使用 Putty 检查 COM 端口时似乎无法正常工作

在 C 上编译,函数错误?

c++ - OpenCL 文件无法在 OS X 上编译