过程中遇到的几个问题记录如下:

1.java -version正常显示java版本,但是javac却显示【不是内部外部命令】

原因:JAVA_HOME设置成了用户环境变量,Path里用%JAVA_HOME%时没有正确解释出来,在cmd里echo %Path%就能看出来了。

解决方法:不用JAVA_HOME,直接在Path里添加绝对路径,到bin为止。

2. 如果程序中声明了包名,即首行写了package com.xxx;

  那么如果按照一般的编译方式 javac 源文件名.java

  会在当前目录下生成class文件。

  然后直接用:java源文件名执行,则会报错。

  出现java.lang.NoClassDefFoundError

产生问题的原因

  包的意义在于产生一种目录结构,所以class文件必须位于相应的目录层次结构中。

  以package com.xxx为例:

  一种解决方式是手工建立com文件夹,里面建立xxx文件夹,把生成的class文件放在目录结构中,并且执行的时候采用java 完整类名(即带上包名)才能够执行。

不需要手动建立文件夹的解决手段

  使用编译参数 -d的解决方法:

  编译的时候可以在javac命令中采用-d指定存放生成的类文件的位置

  -d . 可以在当前目录下生成。

  用如下命令:

  javac –d . 源文件名.java

  则编译后在当前目录下,编译器会生成包的文件目录层次结构,并且把class文件放入其中。

  如果不用“.”,也可以指定目录。

  用java命令执行的时候需要将包的信息全部带上,即用完整的加包名的形式执行。

  执行:

  java 完整类名

3.import的时候,如果要引入整个包,需要用【.*】,如果不这样,则一定要具体到引用包里的哪个类。只是【import 包名】是不对的。

最新文章

  1. 自定义一个类似UIAlertView的弹出框
  2. 数据库中Count是什么意思和SUM有什么区别?
  3. Centos7.2 Systemd 方式编译 Mysql5.7.11
  4. SharedPreferences实现记住密码功能
  5. Oracle数据库中有关记录个数的查询
  6. zoj 3380 Patchouli's Spell Cards 概率DP
  7. 【转】Mysql三种备份详解
  8. 12.TCP的成块数据流
  9. UWP 重启App
  10. dedecms幻灯片调用图片模糊的解决办法
  11. python使用
  12. LDAP的用户需求
  13. Typescript---03 类、接口、枚举
  14. CISCO MDS – Useful ‘Show’ Commands
  15. Java 数据类型与运算符
  16. ASP.Net上传文件
  17. ssh连接docker镜像ubuntu与debian
  18. postgresql-死锁
  19. LRU算法 - LRU Cache
  20. 追踪溯源--抓住隐藏在NAT后面的罪犯

热门文章

  1. 前端领域的BEM到底是什么
  2. ubuntu系统中java开发环境的搭建
  3. springcloud(六):给Eureka Server服务器端添加用户认证
  4. vue 使用echarts
  5. BUPT2017 springtraining(15) #3
  6. Java基础学习总结(69)——匿名内部类与Lambda表达式
  7. hdu 3549 最大流
  8. 动物统计加强版 Trie 树
  9. Introduction(本书简介)
  10. asciiflow