Board logo

标题: java程序的运行(1) [打印本页]

作者: look_w    时间: 2019-4-17 18:22     标题: java程序的运行(1)

一:运行一个程序

写完程序之后:

public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}



--------------------------------------------------------
1:这段代码保存为 HelloWorld.java
2:进入 CMD(命令提示符)
3: 切换到代码文件所在的目录
4: 输入命令
javac HelloWorld.java
将代码编译为字节码文件
5: 输入命令
java HelloWorld
执行该程序



具体运作:



方法一:

新建目录C:\work作为工作目录,创建如下子目录C:\work\com\jayzzz\test\,并在test子目录下创建hw.java文件。(Java语言规范说明了命名Java包的时候应当采用与其域名相反的顺序命名,而Java包的命名反映到操作系统里就是目录。)

com\jayzzz\test\hw.java 源代码

public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}

编译之前,要确保包含java、javac、jar等可执行文件的目录(类似于X:\Java\jdk1.6.0_22\bin)在PATH路径中。之后在命令行控制台中执行:

C:\work>javac com\jayzzz\test\hw.java



这时,顺利在目录test下生成HelloWorld.class文件,下面执行这个文件,有2种方法:
C:\work>java -classpath com\jayzzz\test HelloWorld


C:\work\com\jayzzz\test>java HelloWorld



注意:
第一,不能写HelloWorld.class,要写类名HelloWorld。
第二,如果不在当前目录,必须增加参数-classpath或-cp来指定制定执行时的类搜索路径







方法二: 把代码放入包中:

packagecom.jayzzz.test;

public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}

这句话告诉编译程序hw类属于com.jayzzz.test包,编译出来的HelloWorld.class就包括此信息,这样通过java.exe执行的时候就能搜索到该类了。正确编译之后,除了上述2种执行方法外,又多了一种方法:
C:\work>java com.jayzzz.test.HelloWorld





二: 引用其他的类(java的运行尤其需要注意路径问题)



下面在com\jayzzz目录下新建一个lib目录,并在com\jayzzz\lib\下新建一个hwlib.java文件,代码如下:


  com\jayzzz\lib\hwlib.java 源代码


package com.jayzzz.lib;
  public class hwlib {
    public hwlib() {
      System.out.println("This is from Hello World Library!\n");

   }
}



这是个简单的类,每当创建一个实例时就会打印一句话。

修改com\jayzzz\test\hw.java如下:
  com\jayzzz\test\hw.java 源代码v3
  package com.jayzzz.test;
  import com.jayzzz.lib.*;
  public class HelloWorld {
    public static void main(String[] args) {
      hwlib t = new hwlib();

      System.out.println("Hello world from com.jayzzz.test.\n");

   }
  }
import com.jayzzz.lib.*; 告诉编译器,我需要引用com.jayzzz.lib下的所有类。
hwlib t = new hwlib();创建了hwlib类,由刚才的hwlib类的定义可知,执行到此处会打印一句话。
import关键字和C/C++中的#include不同,和namespace类似。

我们无需去编译hwlib类,javac会自动在编译hw.java时查找它导入的类并自动编译。编译执行过程如下:
C:\work>javac com/jayzzz/test/hw.java
C:\work>java com.jayzzz.test.HelloWorld



This is from Hello World Library!

Hello world from com.jayzzz.test.




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0