一、最基础的编译运行:
在D盘根目录下进行测试:
public class Test{ public void say(){ System.out.println("ok"); } public static void main(String[]args){ new Test().say(); } }
以上代码写入:
d:\Test.java
然后在d盘目录下执行:
D:\ >javac Test.java
便能生产Test.class文件,文件同样位于D:\根目录下
再执行:
D:\ >java Test
便可成功运行main方法,看到输入结果"ok"
二、java类中指明了package
package com.cainiao.test; public class Test{ public void say(){ System.out.println("ok"); } public static void main(String[]args){ new Test().say(); } }
这时,直接运行:
D:\ >javac Test.java
虽然可以成功得到Test.class文件,但是在运行时,却会报错找不到主类.
错误: 找不到或无法加载主类 Test
原因在于,这时类的全名为:com.cainiao.test.Test,运行时必须要指定全路径名。
Test.class文件不放在相应的包目录下,是不能运行的。编写一个类,编译成.class文件之后,然后随意放在一个目录下,并不等于就将该类放在了包中。,包名必须在源代码中,通过package语句指定,而不是靠目录结构确定。
因此,对于指定了package的类,使用命令:
D:\> javac -d . Test.java
进行编译,即可生成带有包目录的class文件,实际看到的效果为class文件放入了指定的文件夹下:D:\com\cainiao\test\Test.class
然后运行命令:
D:\> java com.cainiao.test.Test
即可得到输入“ok”
原文地址:https://www.cnblogs.com/shuhe-nd/p/11145896.html
时间: 2024-10-14 16:18:44