【发布时间】:2013-07-12 14:12:30
【问题描述】:
所以我开始使用 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 到底是什么。我知道这是类文件的集合,但我是否使用某些命令明确地制作了一个 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文件夹内运行程序时,它说]
线程“主”java.lang.NoClassDefFoundError 中的异常:Bb(错误名称:B/Bb) 在 java.lang.ClassLoader.defineClass1(本机方法) 在 java.lang.ClassLoader.defineClass(ClassLoader.java:634) 在 java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 在 java.net.URLClassLoader.defineClass(URLClassLoader.java:277) 在 java.net.URLClassLoader.access$000(URLClassLoader.java:73) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:212) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:205) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:321) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:266) 找不到主类:Bb。程序将退出。
这里发生了什么?
编辑 2
当我执行java B.Bb [Inside Folder B.Bb] 时,它会打印出AA。
如果有人可以解释发生了什么?
【问题讨论】:
-
老实说,对于每个问题,网上都有很多帮助
-
@Kraken : 请找到这个包含
.txt文件的.zip 文件,看看这是否能让你以任何方式理解整个事情。