有关classpath 和 package 的问题

在不使用IDE写程序的时候,若有涉及到类中有声明package的时候经常会出现找不到类的问题,最近在看了一些相关资源后有点明白,也不是对不对,写出来和大家讨论下,现在有一个类(D:/java/Dog.java) 

 

 package com.zy;

 

public class Dog

{

  public void printString(String i)
 {
  System.out.println("Dog.printString()" + i);
  }

}

 

另一个类(D:/java/Cat.java)

 

import com.zy.Dog;

public class Cat
{
 public static void main(String args[])
 {
  Dog dog = new Dog();

  System.out.println("dog import");
 }
}

 

声明了Dog.java的包在com.zy说明一定要将编译后的Dog.class文件拷贝到com.zy目录下,否则Cat.java找不到这个类

 

此时只要在系统变量的classpath的值增加一个“.”就可以了,因为他们(cat.java和Dog.java在相同目录下,运行时候自动会将当前目录认为的classpath);

 

若现在还有个类(D:/temp/TestPackage.java)要使用Dog.java

 

import com.zy.Dog;

public class TestPackage
{
 public static void main(String args[])
 {
  Dog dog = new Dog();

  dog.printString("helloDog!");
 }
}

 

编译不成功了。。。为什么呢?和Cat.java一样import com.zy.Dog 却不能编译呢?

 

是因为系统不知道com.zy.Dog在哪,于是需要告诉系统在什么地点,这样就得设置环境变量下的classpath,增加一项,那需要加什么呢?需要加的是(D:/java) 为什么呢?因为Dog.java中声明的是package com.zy 而Dog.java本身就在D:/java,所以在环境变量的classpath下增加D:/java 其他任何地方的程序只要import com.zy.Dog  就能够使用这个类了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值