package feng;
public class Hello{
public static void main(String []args){
System.out.println("hello world");
}
}代码如上,Hello.java存放在D盘根目录下,
进cmd
d:
然后编译:javac -d . Hello.java
通过 d盘根目录下出现一个feng的文件夹,里面有一个Hello.class文件
运行:java feng.Hello
成功
但是如果编译方式不变,运行时如下:
先 cd feng 进入feng文件夹所在路径
然后 java Hello居然报错!!!!could find the main class。。
我的classpath没有配 JDK1.5以后是允许的,我的JDK版本是1.6
请问为什么????
public class Hello{
public static void main(String []args){
System.out.println("hello world");
}
}代码如上,Hello.java存放在D盘根目录下,
进cmd
d:
然后编译:javac -d . Hello.java
通过 d盘根目录下出现一个feng的文件夹,里面有一个Hello.class文件
运行:java feng.Hello
成功
但是如果编译方式不变,运行时如下:
先 cd feng 进入feng文件夹所在路径
然后 java Hello居然报错!!!!could find the main class。。
我的classpath没有配 JDK1.5以后是允许的,我的JDK版本是1.6
请问为什么????
我认为不用工具的话不会自动生成文件夹feng既然 运行:java feng.Hello了说明你知道java包名机制
干嘛还要到feng里面去运行呢
你java那一下 并且没指定路径的话JVM就会从当前路径开始 后面接上包路径
发现feng下没有feng这个包 肯定会出错了 除非你把package feng; 去掉
或者乖乖回到包外面去运行
-----------------------------------------------
这是我的笔记:
Java中的包主要是为了使客户端程序员合理组织代码,分割区间,有序调用。
怎样编译一个带包的java文件呢?这里给出一个PackageTest.java的源文件
package user.liu;
class Student {
Student(String name) {
System.out.println("My name is:"+name);
}
Student(String name,int old) {
System.out.println("My name is:"+name+",Old is:"+old);
}
}public class PackageTest {
public static void main(String args[]) {
Student s1=new Student("Liu");
Student s2=new Student("Tom",15);
}
}
它的目录是:D:\Test\java
可以如下编译:
C:\Documents and Settings\Administrator>D:D:\>cd D:\Test\javaD:\Test\java>javac -d . PackageTest.javaD:\Test\java>java user.liu.PackageTest
输出:
My name is:Liu
My name is:Tom,Old is:15