How to compile java package structures using javac(如何使用 javac 编译 java 包结构)
问题描述
我正在尝试编译(从命令行)一个导入我自己的另一个包的 java 包.我正在关注 tutorial online 但似乎在我尝试编译最终的 java 文件(CallPackage.java).
I am trying to compile (from the command line) a java package that imports another package of my own. I was following a tutorial online but it seems that I get an error when I try to compile the final java file (CallPackage.java).
这是文件结构:
+ test_directory (contains CallPackage.java)
-> importpackage
-> subpackage (contains HelloWorld.java)
这里是 CallPackage.java:
Here is CallPackage.java:
/// CallPackage.java
import importpackage.subpackage.*;
class CallPackage{
public static void main(String[] args){
HelloWorld h2=new HelloWorld();
h2.show();
}
}
这里是 HelloWorld.java:
and here is HelloWorld.java:
///HelloWorld.java
package importpackage.subpackage;
public class HelloWorld {
public void show(){
System.out.println("This is the function of the class HelloWorld!!");
}
}
尝试的步骤
- 进入子包,用
$javac HelloWorld.java
编译HelloWorld.java. - 转到 test_directory 并使用
$javac CallPackage.java
编译 CallPackage.java.
- Go to the subpackage and compile HelloWorld.java with
$javac HelloWorld.java
. - Go to test_directory and compile CallPackage.java with
$javac CallPackage.java
.
这给了我最后一个命令的错误:
This gives me an error on the last command:
CallPackage.java:1: package importpackage.subpackage does not exist
import importpackage.subpackage.*;
^
CallPackage.java:4: cannot find symbol
symbol : class HelloWorld
location: class CallPackage
HelloWorld h2=new HelloWorld();
^
CallPackage.java:4: cannot find symbol
symbol : class HelloWorld
location: class CallPackage
HelloWorld h2=new HelloWorld();
^
3 errors
如何编译这两个包?非常感谢您的帮助!
How can I compile both packages? Thanks so much for any help!
推荐答案
你确定 importpackage/subpackage 在你的类路径中吗?
Are you sure importpackage/subpackage is in your classpath?
-cp 路径或-classpath 路径
-cp path or -classpath path
指定在哪里可以找到用户类文件,以及(可选)注释处理器和源文件.此类路径覆盖 CLASSPATH 环境变量中的用户类路径.如果既未指定 CLASSPATH、-cp 也未指定 -classpath,则用户类路径由当前目录组成.有关详细信息,请参阅设置类路径.
Specify where to find user class files, and (optionally) annotation processors and source files. This class path overrides the user class path in the CLASSPATH environment variable. If neither CLASSPATH, -cp nor -classpath is specified, the user class path consists of the current directory. See Setting the Class Path for more details.
如果没有指定-sourcepath选项,也会在用户类路径中搜索源文件.
If the -sourcepath option is not specified, the user class path is also searched for source files.
如果未指定 -processorpath 选项,还会在类路径中搜索注解处理器.
If the -processorpath option is not specified, the class path is also searched for annotation processors.
http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javac.html
这篇关于如何使用 javac 编译 java 包结构的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何使用 javac 编译 java 包结构


基础教程推荐
- 减少 JVM 暂停时间 >1 秒使用 UseConcMarkSweepGC 2022-01-01
- 设置 bean 时出现 Nullpointerexception 2022-01-01
- FirebaseListAdapter 不推送聊天应用程序的单个项目 - Firebase-Ui 3.1 2022-01-01
- Java:带有char数组的println给出乱码 2022-01-01
- 降序排序:Java Map 2022-01-01
- 无法使用修饰符“public final"访问 java.util.Ha 2022-01-01
- 在 Libgdx 中处理屏幕的正确方法 2022-01-01
- 如何使用 Java 创建 X509 证书? 2022-01-01
- Java Keytool 导入证书后出错,"keytool error: java.io.FileNotFoundException &拒绝访问" 2022-01-01
- “未找到匹配项"使用 matcher 的 group 方法时 2022-01-01