现在JAVA_HOME CLASSPATH环境变量都配置了,之前一直都用myeclipse写的程序编译也没问题,现在我想写个脚本直接用命令行编译
命令行大体是这样的形式 javac -classpath "d:\userlib\" -sourcepath "d:\usersource\Hello.java"
现在有几个问题
命令行中的-classpath需要指定jdk中的lib目录吗?我无论指定不指定都无法编译成功,指定的做法是遍历jdk下面的所有 lib目录。我猜即使不指定的话,应该也会找环境变量的配置吧?那么即使指定,多了那么一步又会有什么错呢?总之一直编译一直提示 javac:无源文件

解决方案 »

  1.   

    你路径错了呗,把黑窗口切换到你的文件所在目录下直接javac 文件名,就编译了。。
      

  2.   

    文件名不要加引号。
    一般这样用:
    javac -d 编译后的类存放目录 源文件。
    运行时,加上带包名的类名。
      

  3.   

    给你一些范例:
    javac -d ./classes com/linux/command/Main.java
    javac -classpath com -d ./classes com/linux/command/Main.java
    java com.linux.command.Main
    java -classpath classes  com.linux.command.Main希望对你有帮助
      

  4.   

    一般来说你要是想执行一个java的可执行程序的话,你必须要进入该可执行文件所在的目录下才可以正确的对其操作,但是你要是想在其他地方对其进行操作的话,你需要把你想操作的可执行文件所在的路径告诉系统,这里就有两种配置方式,一种是临时的配置方法,另外一种就是一劳永逸的配置方法了。而对一临时的classpath的配置方法为:这里你执行set classpath=此处加上的是你想操作的类文件(.class文件)的路径,注意不要加引号引起来了,这就可以了,这是因为你运行.class文件时,虚拟机就会先去找你给的这个路径去找。这里会有一个问题:举个例子来说,如果你D盘和E盘都有.class 的可执行文件,且同名的话,你在没有给定classpath=这个设置前是分盘去找对应盘符下面的,但是如果你给定了一个,比如说你指定的是D盘的可是你在E盘想执行E盘的那个文件的时候,这样运行起来的确实D盘的那个文件,其实就是一个执行的顺序问题,一句话,虚拟机会优先查找你给的那个路径。因此,如果你想执行的是E盘的那个,你把classpath清空就可以了。对于永久的设置可以在计算机的属性高级配置的那个环境变量设置里面设置一个classpath,路径问:“.;c:\;D:\;E:\;F:\;”(有几个盘你就加几个是,注意不要引号)另外,在对路径输入时不能用引号引起来,直接写就可以了同时新手,语言比较啰嗦,希望可以共同进步。另外对于有错的地方希望大神看到了可以给予指正。
      

  5.   

    楼主头像在校贴吧看过!剪刀手美女,难道是校友img=http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/13.gif][/img]