所以我开始使用Java。我目前在 Ubuntu 平台上。我安装了 jdk,它在初始阶段运行良好。然后我转向“访问控制”一章,它开始谈论 CLASSPATH 和 jars。
这就是我所做的。
在我的桌面上,我创建了一个文件夹A
,并在其中创建了文件Aa.java
package home.kraken.Desktop.A;
class Aa{
public doSome(){
System.out.println("AA");
}
}
在桌面上我有另一个文件夹B
和Bb.java
文件
package home.kraken.Desktop.B;
import home.kraken.Desktop.A.*;
class Bb{
public static void main(String[] args){
Aa a = new Aa();
a.doSome();
}
}
现在,当我运行 Bb.java 时,出现找不到 Aa 的错误。
好的,我知道 CLASSPATH 是一些变量,它提供了搜索其他类的位置。现在这是我的问题
- 我怎么知道我的 CLASSPATH 是什么?
- 在第一个语句中,我已经写了它所在文件夹的完整地址。即使这样它也找不到它?我的项目是否必须仅由 CLASSPATH 指向?
- 假设我的 CLASSPATH 指向桌面 [即我设置 CLASSPATH 的值],现在对于我创建的每个文件,如果我想导入其他类,那么我会
import RELATIVE_ADDRESS_TO_DESKTOP
吗? - 如何设置 CLASSPATH 的值?
- 究竟是什么罐子。我知道它是类文件的集合,但是我是否使用某些命令明确地制作了一个 jar 文件或者......它是如何工作的?
谢谢。
编辑
所以这就是我所做的
我的类路径最初是空的,所以我做了
export CLASSPATH="$CLASSPATH:/home/kraken/Desktop"
现在在文件夹 Desktop/A 内,我有
package A;
public class Aa{
public void doSome(){
System.out.println("AA");
}
}
在文件夹 Desktop/B 里面,我有
package B;
import A.*;
class Bb{
public static void main(String[] args){
Aa a = new Aa();
a.doSome();
}
}
现在,我愿意javac Aa.java
和javac Bb.java
当我做java Bb
[ 里面的文件夹 Desktop/B 运行程序时,它说 ]
266) 找不到主类:Bb。程序将会退出。
这里发生了什么?
编辑 2
当我执行java B.Bb
[Inside Folder B.Bb] 时,它会打印出来AA
。
如果有人可以解释发生了什么?