A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 陈腾跃 黑马帝   /  2012-2-15 21:31  /  3125 人查看  /  14 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 陈腾跃 于 2012-2-19 21:03 编辑

这样的:

java,javac命令使用正常,程序运行也正常
但是为了方便,我把*.java文件都放在一个文件夹路径是:f:\java\workspace
每次我都要“cd”到f:\java\workspace这个目录去编译和运行。

一想,太没技术含量了呀!

于是我在classpath里面添加了这个路径f:\java\workspace。然后问题来了!

1、如果用事先编译好的文件,比如Test.class(在f:\java\workspace中)
C:\>java TimeFunction
运行正常

2、我修改了TimeFunction.java的代码,想重新编译,结果:
C:\>javac TimeFunction.java
javac: 找不到文件: TimeFunction.java
用法: javac <options> <source files>
-help 用于列出可能的选项

3、要这样才可以成功:
C:\>f:
F:\>cd java\workspace
F:\java\workspace>javac TimeFunction.java
F:\java\workspace>

就是想问一下,如果我想在c盘下执行“C:\>javac TimeFunction.java”,系统会自动查找TimeFunction.java文件进行编译的话,环境变量可以配置么?怎么配置?
而且不是那种临时配置方法。就像java和javac在那个盘符下都能运行一样。

而且为什么java命令可以找到文件,javac命令就不行呢?

新手问题,惭愧惭愧,谢谢指教,欢迎拍砖!!!!

14 个回复

倒序浏览
补充一下,菜鸟我试了很多方法,不得要领,比如我把路径放到path里面,结果也是一样的,十分抓狂!
回复 使用道具 举报
我的电脑---属性--高级系统设置--高级--环境变量--系统变量,在里面设置path和classpath的值就行了。
path是java虚拟机编译java文件时的默认路径;classpath是运行class文件时的默认路径。
回复 使用道具 举报
javac这个命令默认编译的是当前目录下的。你可以在编译java文件时,使用完整路径。
回复 使用道具 举报
classpath只是找 *.class 文件会寻找的路径 javac要编译的是 *.java文件 好像没有办法能够不输入目录就编辑 以后用IDE就没这么麻烦了
回复 使用道具 举报
吴亨 发表于 2012-2-15 22:10
我的电脑---属性--高级系统设置--高级--环境变量--系统变量,在里面设置path和classpath的值就行了。
path ...

我的确在path和classpath添加了路径,但是没用哦
回复 使用道具 举报
陈腾跃 黑马帝 2012-2-15 22:51:48
7#
mnisummer 发表于 2012-2-15 22:37
javac这个命令默认编译的是当前目录下的。你可以在编译java文件时,使用完整路径。 ...

就是要方便,所以看看有没有不用完整路径的方法咯
回复 使用道具 举报
陈腾跃 发表于 2012-2-15 22:51
就是要方便,所以看看有没有不用完整路径的方法咯

我现在都没进入dos编译了,直接配置一下editplus这个软件,在哪里编写java文件,就直接按快捷键Ctrl + 1进行编译,按快捷键Ctrl + 2运行,非常方便
回复 使用道具 举报
石德志 黑马帝 2012-2-16 00:17:09
9#
Path:
在命令行窗口中执行命令时,例如javac命令,系统首先会在当前目录查找该命令,如果找寻不到,就会沿着path环境变量中定义的目录,依次查找,以最先找到的为准。
可以用set path命令查看path环境变量的设置,我的系统中path的设置
Path=D:\Program Files\Java\jdk1.6.0\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOW
S\System32\Wbem;C:\ProgramFiles\MicrosoftSQLServer\80\Tools\Binn\;C:\ProgramFiles\MySQL\MySQL Server 5.1\bin;;d:\Program Files\IDM Computer Solutions\UltraEdit-32,如果系统中安装了多个jdk要把想要使用的jdk所在目录放在path环境变量的最前面。
Classpath:
Java虚拟机在执行class字节码文件时会沿着classpath环境变量设置的值进行查找。所以配置path和clsaapath解决不了你的问题
回复 使用道具 举报
王康 黑马帝 2012-2-17 10:50:04
10#
我的电脑---属性--高级系统设置--高级--环境变量--系统变量,在里面设置path和classpath的值就行了。
path是java虚拟机编译java文件时的默认路径;classpath是运行class文件时的默认路径;java_home是jdk的安装路径.
配置如下:

classpath
.;%JAVA_HOME%\lib

JAVA_HOME
C:\Program Files\Java\jdk1.6.0_02

Path
C:\oracle\ora81\bin;C:\oracle\ora81\Apache\Perl\5.00503\bin\mswin32-x86;C:\Program Files\Oracle\jre\1.1.7\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%JAVA_HOME%\bin;C:\Program Files\Common Files\Thunder Network\KanKan\Codecs

评分

参与人数 1技术分 +1 收起 理由
admin + 1 很显眼

查看全部评分

回复 使用道具 举报
classpath的作用是找*.class 文件
path的作用是找*.java文件
回复 使用道具 举报
第一个疑问“每次我都要“cd”到f:\java\workspace这个目录去编译和运行”,可以在桌面建立一个CMD命令的快捷方式,利用CMD命令的参数,具体应该这样
“cmd.exe /k cd /df:\java\workspace”直接到达你想要到达目录的DOS窗口,省的每次都要CMD,换盘符、进目录。  

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
JDK环境变量配置的步骤如下:
1.我的电脑-->属性-->高级-->环境变量.
2.配置用户变量:
a.新建 JAVA_HOME
C:\Program Files\Java\j2sdk1.5.0 (JDK的安装路径)
b.新建 PATH
%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
c.新建 CLASSPATH
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
3.测试环境变量配置是否成功:
开始-->运行--〉javac

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
沈样 黑马帝 2012-2-17 14:13:39
14#
你在classpath中要加入当前目录编绎,再加上其他路径,如.;f:\java\workspace
回复 使用道具 举报
foxpeter 发表于 2012-2-15 22:51
classpath只是找 *.class 文件会寻找的路径 javac要编译的是 *.java文件 好像没有办法能够不输入目录就编辑 ...

是的,好像的确没办法
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马