作者barry800414 (小铭)
看板b98902HW
标题[JAVA] classpath 请先搞懂再去写hw3
时间Sun Apr 4 23:01:35 2010
感谢钢琴今天一直回答我问题XD 有了一点小心得
我觉得CLASSPATH和package的概念非常重要
(老师上课没有特别讲 但是课本有)
我原本就是搞不懂这些 所以今天搞了一整天= ="
总之大家可以先看这篇文再去看钢琴的文章(上三篇)
首先CLASSPATH是
JVM在寻找class档的
路径资讯
假如你现在在 c:\workspace\hw3 里面有HelloWorld.java这个档长这样:
public class HelloWorld{
public static void main(String[] args){
System.out.println("HelloWorld!");
}
}
则
c:\workspace\hw3> javac HelloWorld.java
成功compile之後
c:\workspace\hw3> java HelloWorld
应该可以成功执行
但是假设你现在的目录不在
c:\workspace\hw3> 而是在
c:\workspace>
那该如何执行呢? 这时候就要告诉JVM class放哪! 所以要加CLASSPATH参数
方法如下:
C:\workspace>java -classpath ./hw3 HelloWorld
或
C:\workspace>java -cp ./hw3 HelloWorld
红色的部分就是给JVM的参数指令 告诉它接下来给你CLASSPATHd
蓝色的部分就是路径
. 代表
目前所在路径 此例就是
c:\workspace
所以
./hw3 就是
c:\workspace\hw3 (p.s. 用/ 或\ 都可以)
最後再放你要run的.class档名 就可以跑了!!
==============================================================================
接下再来举另一个例子:
你有一个Information.java 档 和一个Person.class档
Information.java长这样:
public class Information{
public static void main(String args[]){
Person p = new Person();
System.out.println("BMI:" + p.BMI() );
}
}
Information.java放在
c:\workspace\hw3\
src
而Person.class档放在 :
c:\workspace\hw3\
class
那我们该如何编译呢?
C:\workspace\hw3>javac -cp ./class ./src/Information.java
红色和蓝色部分来告诉java compiler 我要用的.class档在 c:\workspace\hw3\class里
最後黄色的部分 就是告诉 compiler 我的.java档 放在哪
这样就可以编译了 那执行呢?
要打这样:
C:\workspace\hw3>java
-cp ./class;./src Information
而不是这样:
C:\workspace\hw3>java -cp ./class Information
或
C:\workspace\hw3>java -cp ./src Information
差在哪? 别忘了Information.class 也是一个class 你没告诉JVM放哪
他当然找不到罗! 所以要给他两个路径 中间要用
; 分隔
(注意!
; 前後
不要有空格 它会把它当成下一参数
,总之会爆)
如此一来就可以执行了
============================================================================
好 也许讲到这里 你会想 干嘛这麽麻烦? 都放在同一个资料夹不是方便多了?
这东西有一个很重要的目的
就是将档案分类 分到不同的资料夹 以利以後开发大程式的时候用!
把.java档放在src资料夹里 把.class档放在class资料夹里.....
把不同功能的分放在不同的资料夹等等
後面还会讲到package的概念 也会用到!
总之 要会就是了!!
package我打下一篇好了
更详细的内容可以看这里:
http://caterpillar.onlyfun.net/Gossip/JavaEssence/WhatClasspath.html
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 60.244.4.129
※ 编辑: barry800414 来自: 60.244.4.129 (04/04 23:10)
※ 编辑: barry800414 来自: 60.244.4.129 (04/04 23:12)
※ 编辑: barry800414 来自: 60.244.4.129 (04/04 23:13)
1F:推 peteranny:推小铭!! 04/05 12:28
2F:推 s864372002:推推,教学文接力XD。 04/05 13:38
3F:推 tomap41017:推推!! 04/06 00:32
4F:推 sunjw:推!! 04/07 20:11
5F:推 paul112004:推! 04/08 22:10
6F:推 zebraseven:好球哦 ~ 推!! 04/16 13:27