java 编译运行记录~

摘要

主要是讲讲java编译运行过程(操作过程,不是原理过程),记录一下遇到的问题。

编译

编译是对文件的编译,所以参数那里是文件名(要.java后缀),同时编译时对类名和位置没有要求,即不管你有没有package, 参数都是你看到的实实在在的文件名,而且你可以在任意地方编译。windows系统一般都是gbk编码,Linux一般是UTF-8,而我们在eclipse上编写源码一般是UTF-8(这个是可设置的,我个人喜欢UTF-8),如果你的文件编码是GBK那在Windows上完全没有问题,但是如果是UTF-8,则在使用javac编译时需要加一个参数-encoding utf-8示例如下:
不加参数的:
不加参数的
加了参数的:
加了参数后
在任意地方编译:
任意地方编译
编译很简单,没什么特别要注意的,就是一个编码问题(最起码我目前为止233)

运行

运行用的是java虚拟机,命令是java -options classname 。java运行的本质就是jvm去classpath指定的目录里寻找到操作者提供的类,然后运行其main方法。只要清楚两个点就OK了,1、classpath指定的目录,2、命令里提供的类。注意这里提供的是完整类名,不是文件名,所以不能加.class后缀。还有一点需要注意的是如果有package语句,那完整类名就是包名加类名,比如我上面的,如果没有package语句,完整类名就是Server,但是我有package语句,所以完整类名是dn.dmandp.maingui.Server。

总结

写到这里突然发现只要确保两点就能正确运行,第一完整类名正确,如果有package就加上包名+类名,如果没有就直接包名;第二classpath目录要直接包含类(无论你写的还是你依赖的)比如下面的src目录是我写的类dn.dmandp.maingui.Server的直接目录,所以classpath要指定src目录,然后src/mysql-connector-java-5.1.39-bin.jar是我依赖的数据库类的直接目录。没错,依赖哪个包,classpath就要直接包含那个包,包实际就是一个文件夹,所以直接指定包就是指定包里面类的直接目录。
这里写图片描述
classpath可以直接设置环境变量,也可以使用java命令时临时指定。例子如上。classpath会默认包含当前执行java指令的目录,但是如果确实不行可以把当前目录上去,如果你要类在当前目录jvm又找不到的话。暂时就那么多~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值