`
happys
  • 浏览: 762 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

javac 简单命令引出的回顾

    博客分类:
  • java
阅读更多
http://stackoverflow.com/questions/10812857/how-to-create-a-package-in-java
这上面的一个问题,有点费解,如果我在d:test目录下先编译Child.java然后再编译Parent.java,之后运行Parent为什么会有错误呢?
test下 \test>javac A.java   找不到B
d盘下   >javac test.A.java  javac: 找不到文件: test.A.java
d       javac A.java        javac: 找不到文件: A.java

javac找文件是根据classpath配置的路径,(如果直接配.则是当前路径)+包路径+类名,找某个类文件是通过操作系统的文件检索来做的,所以不要出现javac test.A.java这种形式。
在test目录下直接javac A.java 找不到B的原因: javac如果用到其他类文件并且没有显式引入,会根据classpath路径+本包名+文件名.class | .java ,这样很自然就找不到B了。
所以可以再D:\>javac test\A.java 这样两个文件都会被编译。
显式命令行中文件系统查找,其他又是java的方式查找。

javac -classpath 这个命令有点奇怪,为什么都已经配置了classpath后面源文件还要写全路径名呢?
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics