[已解决]Java编译报错?
❌
# tree ././
└── src
└── com
└── neo
└── code
└── test
├── test
│ └── Test.java
└── user
└── User.java
# cat src/com/neo/code/test/user/User.java
package com.neo.code.test.user;
public class User {
private String name;
private int age;
private String address;
}%
# cat src/com/neo/code/test/test/Test.java
package com.neo.code.test.test;
import com.neo.code.test.user.User;
public class Test {
public static void main(String[] args) {
User user = new User();
System.out.println("hello world");
}
}%
# javac -version
javac 1.8.0_241
# javac -sourcepath src -classpath src com/neo/code/test/test/Test.java
javac: 找不到文件: com/neo/code/test/test/Test.java
用法: javac <options> <source files>
-help 用于列出可能的选项
-sourcepath
选项使用错了吗?我看帮助文档还有-s
选项,试了一下都不行,这是为啥?
↑原问题
✅
# javac -sourcepath src -classpath src src/com/neo/code/test/test/Test.java// 或者
# javac -s src -cp src src/com/neo/code/test/test/Test.java
编译器的执行可以不依赖
package
描述符,只要源文件不引入其它应用类或者被其它应用类引入,这时只要能准确定位到源文件即可;否则就要在源文件根目录执行编译或者用-sourcepath
指定源文件根目录,这时需要再把-sourcepath
目录做为前缀补充到源文件路径中去。编译器的执行比
JVM
类加载多一步,从源文件import
描述符中拼装完整类限定名并到类路径(-calsspath
)中查询。如果找到多个目标类则编译第一个(如果未编译的话),如果找不到目标类则提示编译报错。以上仅针对
JDK8
以上是 [已解决]Java编译报错? 的全部内容, 来源链接: utcz.com/p/944245.html