Java命令行执行那些事
来源:互联网 发布:2016网络最新最火的词 编辑:程序博客网 时间:2024/05/19 13:42
在刚开始学java的时候,从dos命令行(这里只针对Windows环境下)执行Java程序是一个很不错的尝试。现在大体总结下自己在尝试后遇到的一些问题,及解决办法。
首先,通过命令行查看是否安装Java程序,以及打印classpath和java_home变量:
通过这三个,就可以得知你环境配置是否ok
如果执行java -version报错 或者说找不到,那应该是没有配置java path环境,请自行百度配置。
Java相关的术语说明
这里仅说明下今天的主题:classpath,至于java_home和path请自行百度。
设置CLASSPATH:
这个变量设置很重要,它的作用就是 在执行java xxx.class的时候,告诉jvm去那个目录下找这个xxx去执行。下文主要围绕这个来说明一些问题。
现在,开始我们一个Java简单程序的编写:
1.在桌面右键简历一个Hello.java
/***author:九易扬*///package com.godsdk;public class Hello{ public static void main(String[]args){ //System.out.println("hello world : hello"); }}class _a{ public static void main(String[]args){ System.out.println("hello world:_a"); }}class 1Test{ public static void main(String[]args){ System.out.println("hello world:1Test"); }}class hello{ public static void main(String[]args){ System.out.println("hello world:hello"); }}
我们看到 ,我们在这个名为Hello.java文件中写了几个类,Hello、_a、1Test、hello;
现在我们,对该文件进行编译下:
报错了,相信都清楚这个问题,这个主要是说明下 类名 的一些命名问题,至于具体就不想详述了,但要强调一点,如下问,我们把1Test给干掉,然后在编译:
奇怪,怎么没声称hello.class,先不管,执行一把先。
现象很奇怪,这里有两个问题:
1.桌面明明存在编译后的Hello.class,但在执行java Hello的时候报错了。
2.执行java hello的时候,是可以执行的,并且输出hello类中的输出;
现在 我们把详细信息打印出来瞧瞧:
!!!!! 报ClassNotFound
也就是说 没有找到Hello,但却找到了hello。这里就说明hello把Hello给覆盖了;所以Java类名在编译的时候大小写不敏感。
Java的一些规定
1、若在源文件中定义了声明为public的类,需要将类所在的源文件的文件名取名为类名
2、在同一个源文件中有且只能有一个定义为public的类
3、编译时文件名大小写是不敏感的,执行的时候加载的类名是大小写敏感的
但是在执行的时候大小写铭感的
所以,上文中 后面的hello把Hello给覆盖了,在执行的时候执行java Hello的时候就报错了。
下面,说另一个问题,上文中,我在执行的时候 写过 cd Desktop
这一句的作用是什么呢。从最上面大家看到我的classpath环境为“.”,其表示为当前目录
而最初的我的目录是:
dir:C:\Users\Administrator
也就是说 ,我的classpath=”C:\Users\Administrator”
执行之后 我的目录是:
dir:C:\Users\Administrator\Desttop
classpath=”C:\Users\Administrator\Desttop”
- 关注的一点来了,因为我的.class文件在
- C:\Users\Administrator\Desttop这个目录,所以 如果我在 最初的dos环境下执行 java hello的话,jvm默认就会去 C:\Users\Administrator路劲下去找hello.class,所以执行就报错了。
这个,可以手动试试
当然,如果有人非要在 C:\Users\Administrator去执行 C:\Users\Administrator\Desttop目录下的hello.class,
可以这样
上文中 我把Desktop携程Desttop,请自改之。
从这里 执行cmd可以看出 采用
Java -cp C:\Users\Administrator\Desktop hello hello world:hello可以就执行了,其中-cp就是指定classpath环境变量,即classpath所在目录。
2.带package 编译
首先将上文中的Hello.java文件中的package那一行的注释去掉,然后执行
就会发现按包名目录来生成想要的class文件。
扩展一点,其实在windows环境下包名也可以大写,但最好不要在正式工程中尝试。
这是因为为了适应不同的操作系统而做的改变吧。因为Unix系的操作系统是大小写敏感的,所以如果在操作系统中”COM”和”com”两个文件夹被认为是两个不同的文件夹;而在Windows操作系统中,大小写是不敏感的,因此”COM”和”com”两个文件夹为被认为是同一个文件夹。正因为这样,如果有人正好在Unix系的操作系统下写了两个包名。
- Java命令行执行那些事
- Java执行命令行
- Java执行DOS命令行
- 命令行执行java程序
- Java执行DOS命令行
- 命令行执行java程序
- java命令行执行.class
- 命令行执行java程序
- 命令行执行java程序
- 命令行执行java程序
- Java执行命令行问题
- Java 执行Windows 命令行
- 命令行执行java文件
- 命令行执行java程序
- 命令行执行java文件
- 命令行执行java程序
- java执行命令行的方法
- dos命令行执行java出错
- 从单链表中输出指定值的节点
- 【编程题】-C++实现:判断字符串在末尾加一个字符,能否构成回文串
- 一个小公司老板的日常管理,希望能让创业的朋友学到东西
- 网络编程入门(1
- lintcode-旋转图像-161
- Java命令行执行那些事
- 黑马程序员---C语言 内存分区
- 详解Objective-C的meta-class ,runtime创建类,添加实例变量
- Fiddler手机抓包
- lintcode-跳跃游戏-116
- 无锁编程(一) - Double-checked Locking
- git的学习--绪论
- 由jQuery到AngularJS的思维转变
- 使用Lift+Maven+Idea搭建web应用