呜呜,最后再问一次java classpath怎么配,救命阿

C、C++和Java语言
回复
zouzhile
帖子: 36
注册时间: 2005-11-16 9:40
送出感谢: 0
接收感谢: 0

呜呜,最后再问一次java classpath怎么配,救命阿

#1

帖子 zouzhile » 2005-12-06 13:42

大家好,现在我的jdk是这样一个状况:安装成功了,javac命令可以在console里面用了,java命令也有响应,可是我想把我的/home/robin/javadir这个文件夹添到CLASSPATH里面,于是我编辑了/etc/environment,内容如下:

JAVA_HOME=/usr/lib/jdk1.5
CLASSPATH=${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar:/home/robin/javadir


我写了个helloworld测试是否配置好了,程序如下:
public class HelloWorld
{
public static void main(String[] args)
{
System.out.println("Hello,Robin!");
}
}
没有package,直接放到/home/robin/javadir下面,可是用java命令运行时却找不到类,所以我用echo命令查看${CLASSPATH},结果却返回了这个值:
/usr/lib/jdk1.5/lib
不知道为什么我在/etc/environment下面设置的CLASSPATH没有生效,而/usr/lib/jdk1.5/lib这个值又是哪来的呢?
顺便问一句,在linux下面是用大写的CLASSPATH表示类路径而不是小写的classpath对吗?
非常感谢大侠们对我这只菜鸟的关心,谢谢
Best Regards:)
Robin
zouzhile
帖子: 36
注册时间: 2005-11-16 9:40
送出感谢: 0
接收感谢: 0

#2

帖子 zouzhile » 2005-12-06 13:45

大家都来说说看jdk的CLASSPATH到底怎么配,然后整个完整的流程让大家以后不再这个问题上浪费时间了,呵呵
头像
laborer
帖子: 1016
注册时间: 2005-10-25 11:15
送出感谢: 0
接收感谢: 1 次
联系:

#3

帖子 laborer » 2005-12-06 14:36

不排除后来又有什么脚本把你之前设的CLASSPATH给冲掉了。

你先确认一下:

代码: 全选

$ export JAVA_HOME=/usr/lib/jdk1.5
$ export CLASSPATH=${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar:/home/robin/javadir
之后能不能java HelloWorld
hreiser@oakland:~$ killall -9 wife
police@oakland:~$ sudo find / -user hreiser
court@oakland:~$ sudo mv /home/hreiser /jail/
court@oakland:~$ sudo usermod -d /jail/hreiser -s "/usr/sbin/chroot /jail/" hreiser
zouzhile
帖子: 36
注册时间: 2005-11-16 9:40
送出感谢: 0
接收感谢: 0

#4

帖子 zouzhile » 2005-12-06 23:02

laborer,可以了,真是太感激你了,不过export是什么意思呢?
头像
laborer
帖子: 1016
注册时间: 2005-10-25 11:15
送出感谢: 0
接收感谢: 1 次
联系:

#5

帖子 laborer » 2005-12-06 23:14

export标记需要导出的环境变量,使子进程可以读取此变量。

说简单一点,你export CLASSPATH之后,java就能读到CLASSPATH这个变量了。
hreiser@oakland:~$ killall -9 wife
police@oakland:~$ sudo find / -user hreiser
court@oakland:~$ sudo mv /home/hreiser /jail/
court@oakland:~$ sudo usermod -d /jail/hreiser -s "/usr/sbin/chroot /jail/" hreiser
pearma
帖子: 16
注册时间: 2006-01-21 12:29
送出感谢: 0
接收感谢: 0

#6

帖子 pearma » 2006-01-21 12:39

一般来说,我会在命令行包含所有需要的jar路径.
比如说:
java -cp "/usr/lib/java/rt.jar:/usr/informix/informix-jdbc.jar" foo

这样就不会遇到你说的问题了.

也许你会说这样麻烦,但是因为linux能够记住你输过的命令,所以我要做的就是修改最后的class文件.classpath因为基本一样,所以很少改变.
jackeyj
帖子: 4
注册时间: 2006-01-24 11:25
送出感谢: 0
接收感谢: 0

#7

帖子 jackeyj » 2006-01-24 12:26

我的也是这样的问题:我在/etc/profile设置过也没有用。

代码: 全选

# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).

if [ "`id -u`" -eq 0 ]; then
  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11"
else
  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/usr/games"
fi

if [ "$PS1" ]; then
  if [ "$BASH" ]; then
    PS1='\u@\h:\w\$ '
    if [ -f /etc/bash.bashrc ]; then
	. /etc/bash.bashrc
    fi
  else
    if [ "`id -u`" -eq 0 ]; then
      PS1='# '
    else
      PS1='$ '
    fi
  fi
fi

export PATH

export JAVA_HOME=/zjant/program_file/jdk1.5.0_06
export PATH=$PATH$:{JAVA_HOME}/bin
export JDK_HOME=${JAVA_HOME}

#export JAVA_HOME PATH JDK_HOME


umask 022
jcadam
帖子: 31
注册时间: 2005-06-06 5:26
送出感谢: 0
接收感谢: 0

#8

帖子 jcadam » 2006-02-19 21:18

同样,我在/etc/profile中添加环境变量后也没有用。
在ubuntu中,bash的环境变量到底应当在何处设置?
头像
猫尾摆摆
帖子: 70
注册时间: 2006-02-22 16:31
来自: 湖南长沙
送出感谢: 0
接收感谢: 0
联系:

#9

帖子 猫尾摆摆 » 2006-03-02 9:42

我是在启动eclipse的时候设置的。。
HP 2510P
头像
Hamtaro
帖子: 308
注册时间: 2005-04-15 5:59
送出感谢: 0
接收感谢: 0
联系:

#10

帖子 Hamtaro » 2006-05-16 17:44

jcadam 写了:同样,我在/etc/profile中添加环境变量后也没有用。
在ubuntu中,bash的环境变量到底应当在何处设置?
俺是用 /etc/envorment和 ~/.bash_profile(也有用~/.bashrc的吧)来设置的

跑Tomcat和JAVA是没有问题的~~
AMD Althon64X2 Dual Core Processor 5000+
Jetway Hammar A770
Segate SATA 160G + Segate ATA 80G
Geil DDR2-800 2048 MB
AOC2016SW 1650x1050 with Geforce 9600GT

Windows XP sp3 & ubuntu 10.10
cowoo
帖子: 10
注册时间: 2006-05-18 15:51
送出感谢: 0
接收感谢: 0

#11

帖子 cowoo » 2006-06-01 14:08

Ubuntu好像是先找~/.bashrc,我一直在这里面设置,没遇到过问题。在~/.bash_profile不行。

我一般是在~/.bashrc的最后加上这些:

代码: 全选

export JAVA_HOME=/usr/lib/j2sdk1.5-sun/

export CATALINA_HOME=/usr/local/Tomcat

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib

那个CATALINA_HOME是Tomcat的路径
xanadyu
帖子: 4
注册时间: 2006-06-07 1:36
送出感谢: 0
接收感谢: 0

#12

帖子 xanadyu » 2006-06-11 22:10

我也是在~/.bashrc里加上export的内容
但是还是每次都要手工source才能看到classpath

为什么会发生这种事情?!
头像
zhan
帖子: 1880
注册时间: 2005-08-15 0:04
来自: 南7技校
送出感谢: 0
接收感谢: 0
联系:

#13

帖子 zhan » 2006-06-11 23:54

加到/etc/environment中把。
飞得高,飞得低,学习再学习,多少大秘密!
http://zhan.blog.ubuntu.org.cn
回复

回到 “C/C++/Java”