① javac 怎么指定classpath
假设要把编译后生成的类文件放在dir目录下(相对路径或绝对路径):
javac -d dir Test.java
linux下
指定classpath(假设在bash下):
在工作目录下有一个隐藏文件,编辑这个文件,保存退出,声明,注销或重启,classpath即生效。启氏下面是详细步骤:
cd #跳到工作路径
vi .bash_profile #编辑这悄轿散个文件
(vi中输入下列内容:)
JAVA_HOME=/opt/jdk-1.6.0_04 #改为你安装jdk的绝对路径
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:dir:$CLASSPATH #把当前路径和你指定的dir设为classpath
export JAVA_HOME PATH CLASSPATH #声明为全局变量,bash特有命令
(退出vi)
. .bash_profile #声明环境变量 #用. 或source命令告知系统该文件已修改
reboot #重启。也可用图形界面注销用户重新登录
windows xp下
“我的电脑”右键-->属性-->高级-->环境变量,在上面框“administrator的用户变量”帆敬中添加一条:path,值为:%JAVA_HOME%/jdk-1.6.0_04/bin
(JAVA_HOME为事先设置好的java jdk安装的盘符,% %取它的值,整体应该是一个绝对路径)
如果没有装其他软件,classpath不需要特别设定,即可在.class文件生成的当前路径下执行.class文件
② java怎么读取classpath文件
写Java程序时会经常从classpath下读取文件,是时候该整理一下了,并在不断深入的过程中,陆续补充上。
现在Java project 都以maven项目居多, 比如像下面这样的一个项目结构:
③ JAVA环境变量classpath
rt.jar是JAVA基础类库,dt.jar是关于运行环境的类库,tools.jar是工具类库
classpath的变量值不加是因为他们前面有这段东西 .;%JAVA_HOME%\lib例如 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar后面那段可加可不加,加了其实就是加速java程序搜索tools.jar类库的速率。不加是,减慢速率而已。因为lib文件夹下面包括了tool.jar这些等文件。java程序会自动搜索lib文件夹内所有类库。所以有说加和不加的。
④ javac读取classpath值吗
肯定的了,classpath,翻译过来就是class文件的路径。所以应该和javac命令没有关系的。他还有一个参数-d,下面是网络过来的。如果不进入.java文件所在的目录,可以直接指定绝对路径,而且可以一次编译多个文件
以下三个命令可以满足你的要求。
javac-dd: estd:.java
javac-dd: est-cpd: estc:a.java
java-cpd: esta
说明-d指定生成的class文件存放路径
-cp指定引用的class文件存放路径
⑤ java中如何设置classpath.
工具:电脑
步骤:
1、点击 此电脑,然后选择属性
⑥ 关于java中的classpath
你好,不是输入classpath,正确如下
首先介绍一下环境变量的设置方法:(这里以jdk1.6来安装,其他版本一样)在把jdk安装到计算机中之后,我们来进行设置使java环境能够使用。
首先右键点我的电脑。打开属性。然后选择“高级”里面的“环境变量”,在新的打开界面中的系统变量需要设置三个属性“JAVA_HOME”、“path”、“classpath”,其中在没安装过jdk的环境下。path属性是本来存在的。而JAVA_HOME和classpath是不存在的。
点“新建”,然后在变量名写上JAVA_HOME,顾名其意该变量的含义就是java的安装路径,呵呵,然后在变量值写入刚才安装的路径“C:/jdk1.6”。(注:
如果安装的路径不是磁盘C或者不是在jdk1.6这个文件夹,可对应修改。以下文字都是假定安装在C:/jdk1.6里面。)
其次在系统变量里面找到path,然后点编辑,path变量的含义就是系统在任何路径下都可以识别java命令,则变量值为“.;%JAVA_HOME%/bin”,(其中“%JAVA_HOME%”的意思为刚才设置JAVA_HOME的值),也可以直接写上“C:/jdk1.6/bin”
最后再点“新建”,然后在变量名上写classpath,该变量的含义是为java加载类(class or
lib)路径,只有类在classpath中,java命令才能识别。其值为“.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/toos.jar
(要加.表示当前路径)”,与相同“%JAVA_HOME%有相同意思”
以上三个变量设置完毕,则按“确定”直至属性窗口消失,下来是验证看看安装是否成功。先打开“开始”->“运行”,打入“cmd”,进入dos系统界面。然后打“java
-version”,如果安装成功。系统会显示java version jdk"1.6.0"。
确保安装在C盘文件名为jdk1.6,环境变量直接复制就可以了
,在dos界面中输入javac来查看该命令是否合法,同样输入java来查看该命令是否合法
这样环境变量就设置好了,下面进行对PATH,CLASSPTH,JAVA_HOME的讲解以下为置JAVA_HOME,CLASSPATH,PATH的目的:
1,设置JAVA_HOME:
一、为了方便引用,比如,你JDK安装在C:/Program Files/Java/jdk1.6.0目录里,则设置JAVA_HOME为该目录路径,
那么以后你要使用这个路径的时候, 只需输入%JAVA_HOME%即可, 避免每次引用都输入很长的路径串;
二、归一原则,
当你JDK路径被迫改变的时候, 你仅需更改JAVA_HOME的变量值即可, 否则,你就要更改任何用绝对路径引用JDK目录的文档, 要是万一你没有改全,
某个程序找不到JDK, 后果是可想而知的----系统崩溃!
三、第三方软件会引用约定好的JAVA_HOME变量, 不然,
你将不能正常使用该软件, 以后用JAVA久了就会知道, 要是某个软件不能正常使用, 不妨想想是不是这个问题.
2,设置CLASSPATH:
这是一个很有趣,当然也比较折磨初学者的问题, 这个变量设置的目的是为了程序能找到相应的".class"文件, 不妨举个例子:
你编译一个JAVA程序---A.java, 会得到一个A.class的类文件,你在当前目录下执行java A, 将会得到相应的结果(前提是你已经设置CLASSPATH为"."). 现在, 你把A.class移到别的目录下(例如:"e:/"), 执行java A,
将会有NoClassDefFindError的异常,原因就是找不到.class文件, 现在你把CLASSPATH增加为:".;e:/"再运行java A,
看看会有什么结果~~:)~~~, 一切正常, java命令通过CLASSPATH找到了.class文件!
3,设置PATH:
道理很简单, 你想在任何时候都使用%JAVA_HOME%/bin/java 等来执行java命令吗, 当然不会, 于是, 你可以选择把
%JAVA_HOME%/bin添加到PATH路径下, 这样,
我们在任何路径下就可以仅用java来执行命令了.(当你在命令提示符窗口输入你个代码时,操作系统会在当前目录和PATH变量目录里查找相应的应用程序, 并且执行.)
======================错误案例NoClassDefFound:
当 Java 虚拟机或 ClassLoader
实例试图在类的定义中加载(作为通常方法调用的一部分或者作为使用new 表达式创建的新实例的一部分),但无法找到该类的定义时,抛出此异常。
问题出在你环境变量设置错误:
上述楼主把C:/Program
Files/Java/jdk1.5.0_11/lib/dt.jar;C:/Program
Files/Java/jdk1.5.0_11/jre/lib/rt.jar放在classpath的环境变量中是正确的
⑦ java的环境变量classpapth和path怎么设置
1.首先,打开配置环境变量界面,如下操作:我的电脑---属性---高级---环境变量
2.系统变量(S)中配置如下:
2.1,新建系统变量:
变量名:JAVA_HOME
变量值:C:\Program Files\Java\jdk1.5.0_17(该目录为JDK安装的目录)
2.2,编辑CLASSPATH,如果没有该变量则新建,
变量名:CLASSPATH
变量值:%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;(注:该变量值置于CLASSPATH即可, 其中:变量值最后要记得加“;”)
2.3,编辑PATH,如果没有则新建
变量名:PATH
变量值:.;%JAVA_HOME%\bin; (注:该变量值置于PATH前面,如果你只有一个JDK版本,可以不用编辑PATH,如果为了区别版本,那还是配置PATH变量值)。
⑧ java如何获取classpath中某文件的输出流
InputStream is = this.getClass().getResourceAsStream("/文件相对路径");
(Stringname)查找具有给定名称的资源。查找与给定类相关的资源的规则是通过定义类的classloader
实现的。此方法委托此对象的类加载器。如果此对象通过引导类加载器加载,则此方法将委托给ClassLoader.getSystemResourceAsStream(java.lang.String)。
在委托前,使用下面的算法从给定的资源名构造一个绝对资源名:
如果name以'/'开始('u002f'),则绝对资源名是'/'
后面的name的一部分。
否则,绝对名具有以下形式:
modified_package_name/name其中modified_package_name是此对象的包名,该名用'/'取代了'.'
('u002e')。有问题再追问,goodluck!
⑨ java 怎么获取classpath列表
环境变量里有classpath,也可用通过java的运行参数 -cp把classpath设上去。