1.简单java代码的编译与运行
class New1
{
private int sno;
private String name;
public New1(int s,String n)
{
sno=s;
name=n;
}
public void showInfo()
{
System.out.println(name);
}
public static void main(String[] args)
{
New1 first= new New1(14,"Janie");
first.showInfo();
}
}
编译:
javac *.java (编译结束后在同一目录下会出现*.class 的文件)
运行:
java *
2.在Test中使用到上面的New1(Test与New1在同一包下)
public class Test
{
public static void main(String args[])
{
New1 sec=new New1(14,"Janie");
sec.showInfo();
}
}
如果New1类没有编译,在执行 javac Test.java 时会对其也进行编译,即同一目录下会出现New1.class 和Test.class
3.在包下的类
package com.xiyou.janie;
public class Student
{
private String name;
private int sno;
public Student (String n,int s)
{
name=n;
sno=s;
}
public void changeInfo(String n,int s)
{
name=n;
sno=s;
}
public void showInfo()
{
System.out.println(name+" "+sno);
}
public int getSno()
{
return sno;
}
public String getName()
{
return name;
}
}
Student.java文件在根目录下,直接执行 javac Student.java 编译生成的class文件还是在根目录下,不在com.xiyou.janie下
如何在编译时自动生成包?
javac -d . Student.java 会自动生成包,然后编译产生的.class文件会在包目录下
4.在Test类下使用上面Student类(此时两个类不在同一包下)
import com.xiyou.janie.Student;
public class Test
{
public static void main(String args[])
{
Student sec=new Student("Janie",14);
sec.showInfo();
}
}
如果Student类没有编译,在执行 javac Test.java 时会出错
所以要先对Student类进行编译,而且要编译到包目录下
5.Student.java在e:盘,Test.java 在桌面
现在两个类都没有编译,Test类里有Student对象,现在编译和运行时要加上环境-classpath
6.打包命令
a.压缩 jar cvf *.jar *.class **.class 包
压缩生成的压缩包里有一个配置文件 MANIFEST.MF
b.解压 jar xvf *.jar
c.使用jar包 java -jar *.jar