| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1224 人关注过本帖
标题:[求助]再次没classpath绊倒
只看楼主 加入收藏
袁小六
Rank: 1
等 级:新手上路
帖 子:85
专家分:0
注 册:2007-8-3
收藏
 问题点数:0 回复次数:16 
[求助]再次没classpath绊倒

我实在不行了 哪位 透彻的给我分析一下

我把classpath设置为G:\java

然后我在目录下建了一个文件夹cn,cn下一个子文件夹evjava,evjava下一个子文件夹math

然后写了如下这个类

package cn.evjava.math;
//辗转相除法
public class MaxYue {
public static int maxYue(int a, int b){
if(a<=0||b<=0) System.exit(0);

int c=Math.max(a, b);
int d=Math.min(a, b);

int r=0;
r=c%d;

while(r!=0){
c=d;
d=r;
r=c%d;
}

return d;

}
}

编译通过后顺利在G:\java\cn\evjava\math目录下生成了MaxYue.class文件

然后我在G:\java目录下创建文件夹mystudy在其下创建了一个Test文件夹
然后在Test文件夹中创建了如下一个名为TestMath的类,内容如下

import cn.evjava.math.*;

public class TestMath {

public static void main(String[] args) {
System.out.println(MaxYue.maxYue(3,15));
}

}

然后编译出错 错误为
软件包 cn.evjava.math 不存在
MaxYue找不到符号

可是如果我把TestMath拿到G:\java下就可以正常编译和运行,为什么啊?


搜索更多相关主题的帖子: classpath 绊倒 
2007-08-18 14:53
george_vcool
Rank: 2
等 级:新手上路
威 望:3
帖 子:453
专家分:0
注 册:2007-7-23
收藏
得分:0 
你用的是不是字符命令,呵呵,把你运行的命令贴出来,别人才好回答你啊?
2007-08-18 14:58
袁小六
Rank: 1
等 级:新手上路
帖 子:85
专家分:0
注 册:2007-8-3
收藏
得分:0 

什么字符命令?我用JC


這個丗堺還钚夠瘋誑~~~
2007-08-18 15:00
lwj19872002
Rank: 1
等 级:新手上路
帖 子:51
专家分:0
注 册:2007-8-13
收藏
得分:0 
奇怪!
不懂!
2007-08-18 15:12
george_vcool
Rank: 2
等 级:新手上路
威 望:3
帖 子:453
专家分:0
注 册:2007-7-23
收藏
得分:0 

我不知道jc具体设置是怎么样的,但是你这明显是classpath出现了问题!!
如果是在字符命令下可以这样运行,如果当前路径为TestMath.class文件所在的路径:java -cp .;g:\java TestMath
这样就可以了!!jc也可以按照这个思路去摸索!!

[此贴子已经被作者于2007-8-18 15:44:54编辑过]

2007-08-18 15:44
袁小六
Rank: 1
等 级:新手上路
帖 子:85
专家分:0
注 册:2007-8-3
收藏
得分:0 

呵呵 是啊 按照你的方法 做出来了 可是这是为什么? -cp不就是不就是指定classpath的路径吗? 但是我应经在classpath里设定了 为什么在这里还要这样做呢?


這個丗堺還钚夠瘋誑~~~
2007-08-18 16:48
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 

因为你的TestMath不属于Test包,你却把它放到Test下,这当然不对

你加一个package Test;
就OK了


可惜不是你,陪我到最后
2007-08-18 17:25
袁小六
Rank: 1
等 级:新手上路
帖 子:85
专家分:0
注 册:2007-8-3
收藏
得分:0 
回复:(千里冰封)因为你的TestMath不属于Test包,你却...

不对啊 还是不可以~~~~


這個丗堺還钚夠瘋誑~~~
2007-08-18 17:51
huwangvs
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:764
专家分:0
注 册:2007-2-4
收藏
得分:0 

当用java,javac的时候,其实用的是java -classpath .和javac -classpath .
当你编译TestMath的时候,编译器就到当前目录下找cn\evjava\math\MaxYue。肯定找不到。
当用javac -classpath G:\java TestMath.java的时候,编译器就到指定目录下找MaxYue了。
对于java也是同样的道理。

不过java 比javac指定的目录多了一个当前目录。是因为编译器也要装载TestMath类。而对于javac来说,它要找的只是个文档,所以不需要包括当前目录。

2007-08-18 18:01
袁小六
Rank: 1
等 级:新手上路
帖 子:85
专家分:0
注 册:2007-8-3
收藏
得分:0 

哦 也就是说一定要用javac -classpath G:\java TestMath.java才行了哦? 那岂不是很麻烦。。。?唉 java的设计者应该再给我们方便一点嘛


這個丗堺還钚夠瘋誑~~~
2007-08-18 20:01
快速回复:[求助]再次没classpath绊倒
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.053911 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved