环境变量都已经设置好,使用javac 运行类时 遇到Exception in thread "main" java.lang.NoClassDefFoundError:
有可能是没有注意到类中有包与没包编译的不同。
没有包的类 如:初学时写的第一个程序
public class hello
{
public static void main(String[] args)
{
System.out.println("helloworld");
}
}
编译时 直接javac hello.java
然后运行 java hello
显示“helloworld”,程序运行成功!
但是遇到有包的类 就要注意了,不能简单的javac+java文件 编译,而是javac -d . 文件.java(注意-d后面空格+点再空格+文件.java
运行时是: java 包名.类名
如一个程序:
package Day03;
/**
* 本例实现业务为用户买饮料。实现步骤如下:
1.从控制台接收用户输入的数量
2.判断是否合法(数量是否>1),小于 1 的丌卖
3.如果用户输入数量>1,计算出用户需要付多少钱,优惠条件是"一杯以上,第二杯半价"
4.输出用户需要交付的金额
*/
import java.util.Scanner;
public class IfStarementDemo {
public static void main(String[] args)
{
@SuppressWarnings("resource")
Scanner console =new Scanner(System.in);
System.out.print("请输入数量:");
double price = 6.00;
int qty =console.nextInt();
if (qty<1)
{
System.out.println("不卖!");
return ;
}
double pay =price;
if (qty>1)
{
pay =price+(qty-1)*price/2;
}
System.out.println("支付金额:"+pay);
}
}
编译时是javac -d . IfStarementDemo.java
运行时是java Day03.IfStarementDemo
运行结果 请输入数量: