打包jar文件步骤
2009-08-03 07:59
176 查看
打包成jar文件
编译Login.java为Login.class(当然假设你事先已经设置好了JDK的环境变量PATH和CLASSPATH)
在命令行执行编译命令:
javac Login.java
用文本编辑器(比如记事本/UltraEdit等 )编写如下manifest文件,并保存为manifest.mf
Manifest-Version: 1.0
Main-Class: Login
【注意】文件manifest.mf内必须是3行文本:
第一行的内容依次是:“Manifest”、英文减号、“Version”、英文冒号、英文空格、数字“1”、英文句号、数字“0”
第二行的英文冒号与Login之间必须要有一个英文空格!!!
第三行是一个空行,也就是说,你要在Login之后键入一个回车,然后才可以存盘退出!!!
如果冒号后面没有空格,可以生成jar文件但不能执行;如果Test后没有回车符,则生成jar文件时会报错。
四、将Login.class打包成.jar文件,并使用manifest.mf指明哪一个是带有public static void main()的“主函数”
在命令行执行编译命令:
jar cvfm Login.jar manifest.mf *.class
附录:Login.java(只是用于打包实验,无实际意义)
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.sql.*;
public class Login extends JFrame implements ActionListener
{
JLabel name = new JLabel("用户名:");
JLabel pass = new JLabel("密 码:");
TextField name_txt = new TextField(100);
TextField pass_txt = new TextField(100);
JButton ok = new JButton("确定");
JButton exit = new JButton("取消");
JButton regedit = new JButton("注册");
public Login()
{
pass_txt.setEchoChar('*');
Label temp1 = new Label(" ");
temp1.setBackground(new Color(198,198,226));
Label temp2 = new Label(" ");
temp2.setBackground(new Color(198,198,226));
Label temp3 = new Label(" ");
temp3.setBackground(new Color(198,198,226));
Label temp4 = new Label(" ");
temp4.setBackground(new Color(198,198,226));
this.addWindowListener(new WindowHandler());
this.setBackground(new Color(198,198,226));
this.add(temp1,BorderLayout.EAST);
this.add(temp2,BorderLayout.SOUTH);
this.add(temp3,BorderLayout.WEST);
this.add(temp4,BorderLayout.NORTH);
Panel p1 = new Panel(new GridLayout(2,1,5,5));
Panel p2 = new Panel(new GridLayout(2,2,0,8));
Panel p3 = new Panel(new FlowLayout());
p2.add(name);
p2.add(name_txt);
p2.add(pass);
p2.add(pass_txt);
p3.add(ok);
p3.add(exit);
p3.add(regedit);
p1.add(p2);
p1.add(p3);
p1.setBackground(new Color(198,198,226));
this.add(p1,"Center");
ok.addActionListener(this);
exit.addActionListener(this);
regedit.addActionListener(this);
this.setTitle("登录");
this.setResizable(false);
this.setLocation(300,200);
this.setSize(300,180);
this.setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
if(e.getActionCommand() == "取消")
{
JOptionPane.showMessageDialog(null,"谢谢使用本系统!!!");
System.exit(0);
}
if (e.getActionCommand() == "确定")
{
String name, pass;
name = name_txt.getText().trim();
pass = pass_txt.getText().trim();
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("jdbc:odbc:lxf");
String sql = "select * from student where username=? and password=?";
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1,name);
ps.setString(2,pass);
ResultSet rs = ps.executeQuery();
if (rs.next())
{
JOptionPane.showMessageDialog(null,"登录成功!!!");
JFrame ff = new JFrame();
JPanel pp = new JPanel(new GridLayout(3,1,0,0));;
JLabel ll = new JLabel("用户名ID是:"+rs.getString("id"));
JLabel ll1 = new JLabel("用户名是:"+rs.getString("username"));
JLabel ll2 = new JLabel("用户名密码是:"+rs.getString("password"));
pp.add(ll);
pp.add(ll1);
pp.add(ll2);
ff.add(pp);
ff.setSize(200, 200);
ff.setVisible(true);
this.dispose();
}
else
{
JOptionPane.showMessageDialog(null,"无此用户或密码不对/n请重新输入!!!");
name_txt.setText("");
pass_txt.setText("");
}
}catch(Exception ee)
{
JOptionPane.showMessageDialog(null,"数据库连接失败!!!");
ee.printStackTrace();
}
}
if(e.getActionCommand() == "注册")
{
String name,pass;
name = name_txt.getText().trim();
pass = pass_txt.getText().trim();
if(name.equals("") || pass.equals(""))
{
JOptionPane.showMessageDialog(null,"必须完整填写所有的信息!!!");
return;
}
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("jdbc:odbc:lxf");
String sql = "select * from student where username=?";
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1,name);
ResultSet rs = ps.executeQuery();
if(rs.next())
{
JOptionPane.showMessageDialog(null,"该用户已经存在,请重新注册!!!");
name_txt.setText("");
pass_txt.setText("");
return;
}
else
{
sql = "insert into student(username,password) values(?,?)";
ps = con.prepareStatement(sql);
ps.setString(1,name);
ps.setString(2,pass);
int re = ps.executeUpdate();
if (re != -1)
{
JOptionPane.showMessageDialog(null,"用户注册成功!!!/n请登录本系统");
name_txt.setText("");
pass_txt.setText("");
}
else
{
JOptionPane.showMessageDialog(null,"注册失败/n请重新输入!!!");
name_txt.setText("");
pass_txt.setText("");
}
}
}catch(Exception ee)
{
JOptionPane.showMessageDialog(null,"数据库连接失败!!!");
ee.printStackTrace();
}
}
}
public static void main(String args[])
{
new Login();
}
class WindowHandler extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
JOptionPane.showMessageDialog(null,"谢谢使用本系统!");
System.exit(0);
}
}
}
编译Login.java为Login.class(当然假设你事先已经设置好了JDK的环境变量PATH和CLASSPATH)
在命令行执行编译命令:
javac Login.java
用文本编辑器(比如记事本/UltraEdit等 )编写如下manifest文件,并保存为manifest.mf
Manifest-Version: 1.0
Main-Class: Login
【注意】文件manifest.mf内必须是3行文本:
第一行的内容依次是:“Manifest”、英文减号、“Version”、英文冒号、英文空格、数字“1”、英文句号、数字“0”
第二行的英文冒号与Login之间必须要有一个英文空格!!!
第三行是一个空行,也就是说,你要在Login之后键入一个回车,然后才可以存盘退出!!!
如果冒号后面没有空格,可以生成jar文件但不能执行;如果Test后没有回车符,则生成jar文件时会报错。
四、将Login.class打包成.jar文件,并使用manifest.mf指明哪一个是带有public static void main()的“主函数”
在命令行执行编译命令:
jar cvfm Login.jar manifest.mf *.class
附录:Login.java(只是用于打包实验,无实际意义)
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.sql.*;
public class Login extends JFrame implements ActionListener
{
JLabel name = new JLabel("用户名:");
JLabel pass = new JLabel("密 码:");
TextField name_txt = new TextField(100);
TextField pass_txt = new TextField(100);
JButton ok = new JButton("确定");
JButton exit = new JButton("取消");
JButton regedit = new JButton("注册");
public Login()
{
pass_txt.setEchoChar('*');
Label temp1 = new Label(" ");
temp1.setBackground(new Color(198,198,226));
Label temp2 = new Label(" ");
temp2.setBackground(new Color(198,198,226));
Label temp3 = new Label(" ");
temp3.setBackground(new Color(198,198,226));
Label temp4 = new Label(" ");
temp4.setBackground(new Color(198,198,226));
this.addWindowListener(new WindowHandler());
this.setBackground(new Color(198,198,226));
this.add(temp1,BorderLayout.EAST);
this.add(temp2,BorderLayout.SOUTH);
this.add(temp3,BorderLayout.WEST);
this.add(temp4,BorderLayout.NORTH);
Panel p1 = new Panel(new GridLayout(2,1,5,5));
Panel p2 = new Panel(new GridLayout(2,2,0,8));
Panel p3 = new Panel(new FlowLayout());
p2.add(name);
p2.add(name_txt);
p2.add(pass);
p2.add(pass_txt);
p3.add(ok);
p3.add(exit);
p3.add(regedit);
p1.add(p2);
p1.add(p3);
p1.setBackground(new Color(198,198,226));
this.add(p1,"Center");
ok.addActionListener(this);
exit.addActionListener(this);
regedit.addActionListener(this);
this.setTitle("登录");
this.setResizable(false);
this.setLocation(300,200);
this.setSize(300,180);
this.setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
if(e.getActionCommand() == "取消")
{
JOptionPane.showMessageDialog(null,"谢谢使用本系统!!!");
System.exit(0);
}
if (e.getActionCommand() == "确定")
{
String name, pass;
name = name_txt.getText().trim();
pass = pass_txt.getText().trim();
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("jdbc:odbc:lxf");
String sql = "select * from student where username=? and password=?";
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1,name);
ps.setString(2,pass);
ResultSet rs = ps.executeQuery();
if (rs.next())
{
JOptionPane.showMessageDialog(null,"登录成功!!!");
JFrame ff = new JFrame();
JPanel pp = new JPanel(new GridLayout(3,1,0,0));;
JLabel ll = new JLabel("用户名ID是:"+rs.getString("id"));
JLabel ll1 = new JLabel("用户名是:"+rs.getString("username"));
JLabel ll2 = new JLabel("用户名密码是:"+rs.getString("password"));
pp.add(ll);
pp.add(ll1);
pp.add(ll2);
ff.add(pp);
ff.setSize(200, 200);
ff.setVisible(true);
this.dispose();
}
else
{
JOptionPane.showMessageDialog(null,"无此用户或密码不对/n请重新输入!!!");
name_txt.setText("");
pass_txt.setText("");
}
}catch(Exception ee)
{
JOptionPane.showMessageDialog(null,"数据库连接失败!!!");
ee.printStackTrace();
}
}
if(e.getActionCommand() == "注册")
{
String name,pass;
name = name_txt.getText().trim();
pass = pass_txt.getText().trim();
if(name.equals("") || pass.equals(""))
{
JOptionPane.showMessageDialog(null,"必须完整填写所有的信息!!!");
return;
}
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("jdbc:odbc:lxf");
String sql = "select * from student where username=?";
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1,name);
ResultSet rs = ps.executeQuery();
if(rs.next())
{
JOptionPane.showMessageDialog(null,"该用户已经存在,请重新注册!!!");
name_txt.setText("");
pass_txt.setText("");
return;
}
else
{
sql = "insert into student(username,password) values(?,?)";
ps = con.prepareStatement(sql);
ps.setString(1,name);
ps.setString(2,pass);
int re = ps.executeUpdate();
if (re != -1)
{
JOptionPane.showMessageDialog(null,"用户注册成功!!!/n请登录本系统");
name_txt.setText("");
pass_txt.setText("");
}
else
{
JOptionPane.showMessageDialog(null,"注册失败/n请重新输入!!!");
name_txt.setText("");
pass_txt.setText("");
}
}
}catch(Exception ee)
{
JOptionPane.showMessageDialog(null,"数据库连接失败!!!");
ee.printStackTrace();
}
}
}
public static void main(String args[])
{
new Login();
}
class WindowHandler extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
JOptionPane.showMessageDialog(null,"谢谢使用本系统!");
System.exit(0);
}
}
}
相关文章推荐
- 将java文件打包成jar包步骤
- MyEclipse打包Jar包及生成.exe可执行文件
- Eclipse将引用了第三方jar包的Java项目打包成jar文件的两种方法
- Java桌面程序jar打包成exe可执行文件
- Jar 打包 EXE文件,可以脱离java环境运行 Jsmooth的使用
- 用Ant 打包java工程为jar文件
- 手把手教你如何把java代码,打包成jar文件以及转换为exe可执行文件
- jar打包(须使用第三方JAR情况下, 附BAT文件,可自动打包)
- android Raw读取JAR资源打包文件
- AS打包jar简洁方法,aar文件生成方法
- Spring Boot Maven 打包可执行Jar文件!
- Eclipse将引用了第三方jar包的Java项目打包成jar文件的两种方法
- 手把手教你如何把java代码,打包成jar文件以及转换为exe可执行文件
- 详解eclipse将项目打包成jar文件的两种方法及问题解决方法
- 为打包文件签名(jar)
- Android工程导入jar文件步骤
- 将MATLAB程序打包为jar文件的时候遇到的问题
- 如何将class文件打包成jar 这里提供两种方式!
- 用Eclipse将java项目打包成JAR可执行文件