将指定的目录-cp
是否递归搜索:否
当类加载器进入类路径中指定的目录时,它开始使用package
该类作为子目录位于其中。如果未指定包,则类加载器将期望它位于该目录的直接子级(类文件)下。
这是一个组合-cp
目录/罐子和package name
.
假设您有以下目录结构
+ Project
sayhello.jar
+ dir
+ sub
+ com
+ test
SayHelloMain.java
类的代码在哪里SayHelloMain.java
is (注意包声明)
package com.test;
import miscellaneous.so.SayHello;
public class SayHelloMain {
public static void main(String[] args) {
SayHello.sayIt();
}
}
和 jar 文件sayhello.jar
包含类SayHello
这就是你必须编译该类的方式SayHelloMain
如果在与java源文件相同的目录中打开命令行
javac SayHelloMain.java -cp ..\..\..\..\sayhello.jar
或者如果在目录中打开命令行Project
javac dir\sub\com\test\SayHelloMain.java -cp sayhello.jar
假设您在目录中打开了命令行Project
这就是您运行课程的方式SayHelloMain
java -classpath dir\sub;sayhello.jar com.test.SayHelloMain
类名必须是完全合格 thus com.test.SayHelloMain
命令
java -classpath dir;sayhello.jar com.test.SayHelloMain
自目录以来将不起作用dir
不递归搜索
命令
java -classpath dir;sayhello.jar sub.com.test.SayHelloMain
也不会工作,因为没有这样的包sub.com.test
。包只是在类的包声明中定义的包