myeclipse写的java窗口程序,导出后功能异常,求大佬们帮个忙,新人没币,小弟先行谢过


这是程序启动后的登录界面

这是登录后的主界面

现在的情况是:导出为可执行jar后,一直停在登录窗口,进不去主界面,如下图,点了没反应
图片说明

源代码发给我,我看一下
打成压缩包发我邮箱 1090053325@qq.com

图片说明
如图,那些DLL文件是原有代码就有的,我试过改变位置打包存放也不行,不要在意
图片说明
这个程序有两部分功能但是公用的某些资源,这是人脸识别登录的,之前发的是管理sqlite数据库中的少量用户

在myeclipse中功能都很正常,但是导出以后就不行了,真心不知道怎么回事,新人求各路大神帮忙,衷心感谢

没人么?大佬们帮小弟看看呀

导出后这个登录功能也异常,进不去了
图片说明

这种项目是你公司的吧,你去问你同事就好了。问题你说不清没源码别人也不清楚情况

这是人脸识别的窗口代码

package com.pag.sysLogin;

import java.awt.AWTException;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;

import org.bytedeco.javacv.CanvasFrame;
import org.bytedeco.javacv.OpenCVFrameGrabber;

import com.pag.compare.Face;
import com.pag.services.UserServices;
import com.pag.winControl.WinEventInterceptor;

public class SysLogin extends JFrame {

/**
 * 
 */
private static final long serialVersionUID = -4300624464929057747L;
static SysLogin lt = new SysLogin();
static JFrame pas = new JFrame();
static JPanel jp,jp1;
static JLabel jlb, jlb1;
static JButton jb, jb1, jb2;
static JTextField jtx;
static JPasswordField jpf;
// 获取显示器属性
static Dimension d = Toolkit.getDefaultToolkit().getScreenSize();

// 临时照片路径
static String path = "D:/temporary/tempor.jpg";

// 摄像机属性
static OpenCVFrameGrabber grabber;
static CanvasFrame canvas;

// 初始化界面
public void init() {

    jp = new JPanel();
    jlb = new JLabel("欢迎使用");
    jlb.setFont(new Font("宋体", Font.BOLD, 32));
    jlb1 = new JLabel("请选择进入方式···");
    jlb1.setFont(new Font("宋体", Font.BOLD, 32));
    jb = new JButton("人脸识别");
    jb1 = new JButton("账号密码进入");
    jb.setFont(new Font("宋体", Font.BOLD, 28));
    jb1.setFont(new Font("宋体", Font.BOLD, 28));
    jb.addActionListener(new click());
    jb1.addActionListener(new click1());
    jp.setLayout(new GridLayout(4, 1));
    jp.add(jlb);
    jp.add(jlb1);
    jp.add(jb);
    jp.add(jb1);
    jp.setBounds(d.width / 2 - 200, d.height / 2 - 100, 400, 200);
    this.setLayout(null);
    this.add(jp);
    this.setUndecorated(true);
    this.setSize(d.width, d.height);
    this.setResizable(false);// 不可改变大小
    this.setAlwaysOnTop(true);// 总在最前
    this.setVisible(true);// 显示窗体
    this.setDefaultCloseOperation(EXIT_ON_CLOSE);
}

// 按钮事件--人脸识别
class click implements ActionListener {

    public void actionPerformed(ActionEvent e) {

        canvas.setVisible(true);
        lt.setVisible(false);
        long time = 0;
        while (time < 155) {
            time++;
            if (time == 149) {
                screenShot();
                System.out.println("截图并存为临时文件成功");
                canvas.setTitle("正在识别,请稍后···");
            }
        }
        try {
            getFiles("D:/temporary");
            identify();
        } catch (Exception e1) {
            e1.printStackTrace();
        }
    }
}

// 按钮事件--口令进入
class click1 implements ActionListener {

    public void actionPerformed(ActionEvent e) {
        pas.setVisible(true);
        lt.dispose();
        canvas.dispose();
    }
}

// 账号登录界面
public static void login() {

    jp = new JPanel();
    jp1 = new JPanel();
    jb2 = new JButton("进入");
    jtx = new JTextField();
    jpf = new JPasswordField();
    jlb = new JLabel("账户:");
    jlb.setFont(new Font("宋体", Font.BOLD, 24));
    jlb1 = new JLabel("密码:");
    jlb1.setFont(new Font("宋体", Font.BOLD, 24));
    jb2.setFont(new Font("宋体", Font.BOLD, 28));
    jb2.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            try {
                System.out.println("输入的账户"+jtx.getText());
                System.out.println("输入的密码"+jpf.getText());
                System.out.println("获取的密码"+UserServices.getPwdByUsername(jtx.getText()));
                if (!UserServices.check(jtx.getText())) {
                    jtx.setText("无此用户");
                    System.out.println("无此用户");
                } else {
                    if (jpf.getText().equals(UserServices.getPwdByUsername(jtx.getText()))) {
                        System.out.println("验证通过");
                        Thread.sleep(2000);
                        System.exit(0);
                    } else {
                        jtx.setText("密码错误");
                        System.out.println("重新输入");
                        pas.repaint();
                    }
                }
            } catch (Exception e1) {
                e1.printStackTrace();
            }
        }
    });
    jp.setLayout(new GridLayout(5,1,50,10));
    jp.add(jlb);
    jp.add(jtx);
    jp.add(jlb1);
    jp.add(jpf);
    jp1.setLayout(new FlowLayout(FlowLayout.CENTER));
    jp1.add(jb2);
    jp.add(jp1);
    jp.setBounds(d.width / 2 - 300, d.height / 2 - 150, 600, 300);
    pas.add(jp);
    pas.setUndecorated(true);
    pas.setBounds(0, 0, d.width, d.height);
    pas.setLayout(null);
    pas.setResizable(false);// 不可改变大小
    pas.setAlwaysOnTop(true);// 总在最前
    pas.setVisible(false);// 显示窗体
}

// 调用摄像头-----------------------------------------------------------------------------------------------------
public static void cameraInit() throws Exception {

    grabber = new OpenCVFrameGrabber(0);
    grabber.start(); // 开始获取摄像头数据
    canvas = new CanvasFrame("请注视摄像头进行人脸识别···");// 新建一个窗口
    canvas.setBounds(0, 0, d.width, d.height);
    canvas.setResizable(false);// 不可改变大小
    canvas.setDefaultCloseOperation(EXIT_ON_CLOSE);
    canvas.setVisible(false);
    while (true)
        canvas.showImage(grabber.grab());
}

// 截图
public static void screenShot() {

    BufferedImage buffImg = null;
    try {
        buffImg = (new Robot()).createScreenCapture(new Rectangle(
                d.width / 2 - 350, d.height / 2 - 450, 700, 900));
        System.out.println("截图完成");
    } catch (AWTException e1) {
        e1.printStackTrace();
    }
    try {
        ImageIO.write(buffImg, "jpg", new File(path));
        System.out.println("图片存储完成");
    } catch (IOException e1) {
        e1.printStackTrace();
    }
}

// 和库中人脸照片进行比对
static String fileName;

static void getFiles(String filePath) throws Exception {
    File root = new File(filePath);
    File[] files = root.listFiles();
    for (File file : files) {
        fileName = file.getName();
        System.out.println(fileName);
        System.out.println("使用者:" + fileName.split("\\.")[0]);
        new Face().OneToOne(path, file.getAbsolutePath());
        System.out.println("比对完成");
    }
}

// 获取相似度
static float s;

public static float getSimilarity(float f) {

    return s = f;
}

// 识别用户
public static void identify() throws Exception {

    System.out.println("正在验证用户···");
    if (s > 0.9) {

        JOptionPane.showMessageDialog((new JFrame().getContentPane()),
                "身份验证成功,欢迎" + fileName.split("\\.")[0] + "使用", "系统信息",
                JOptionPane.INFORMATION_MESSAGE);
        System.out.println(fileName.split("\\.")[0] + "识别成功");
        // 释放键盘
        // wi.resetKeyboard();
        lt.dispose();
        canvas.dispose();
        System.exit(0);
    }
    JOptionPane.showMessageDialog((new JFrame().getContentPane()),
            "身份验证失败,请重新验证···", "警告",
            JOptionPane.WARNING_MESSAGE);
    System.out.println("验证失败");
    canvas.repaint();
    long time = 0;
    while (time < 155) {
        time++;
        if (time == 149) {
            screenShot();
            canvas.setTitle("正在识别,请稍后···");
        }
    }
    try {
        getFiles("D:/temporary");
        identify();
    } catch (Exception e1) {
        e1.printStackTrace();
    }
}

// 系统事件拦截器
static WinEventInterceptor wi = new WinEventInterceptor();

public static void main(String[] args) throws Exception {

    lt.init();
    login();
    cameraInit();
    // 屏蔽键盘
    // wi.setKeyDisable();
}

}

这是登录管理界面的代码

package com.pag.admin;

import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

import com.pag.services.UserServices;
import com.pag.winControl.TakePhoto;

public class AdminLogin extends JFrame{

/**
 * 
 */
private static final long serialVersionUID = 1L;
JButton jb1,jb2;  
JTextField jtf;  
JPasswordField jpwd;  
JLabel jl1,jl2;  
JPanel jp1,jp2,jp3;  

// 获取显示器属性
static Dimension d = Toolkit.getDefaultToolkit().getScreenSize();

public AdminLogin()  
{  
    //创建组件  
    jb1=new JButton("确认");  
    jb2=new JButton("取消");  

    jtf=new JTextField(10);  
    jpwd=new JPasswordField(10);  

    jl1=new JLabel("管理员账号:");  
    jl2=new JLabel("管理员密码:");

    jp1=new JPanel();  
    jp2=new JPanel();  
    jp3=new JPanel(); 

    // 按钮事件
    jb1.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            try {
                valida();
            } catch (Exception e1) {
                e1.printStackTrace();
            }
        }
    });

    jb2.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            System.exit(0);
        }
    });

    //设置布局管理器  
    this.setLayout(new GridLayout(3,1,5,5));  
    //添加组件  
    jp1.add(jl1);  
    jp1.add(jtf);  

    jp2.add(jl2);   
    jp2.add(jpwd);  

    jp3.add(jb1);  
    jp3.add(jb2);  

    this.add(jp1);  
    this.add(jp2);  
    this.add(jp3);  
    //设置窗体属性  
    this.setTitle("管理员登录");  
    this.setBounds(d.width/2-200, d.height/2-110, 400, 220);
    this.setResizable(false);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
    this.setVisible(true);  
}  

 // 验证管理员
public void valida() throws Exception{

    System.out.println(jtf.getText());
    System.out.println(jpwd.getText());
    System.out.println(UserServices.check(jtf.getText()));
    if (!UserServices.check(jtf.getText())) {
        System.out.println("当前账号非管理员");
    } else if(jtf.getText().equals("admin")){
        System.out.println("is administrator");
        System.out.println(UserServices.getPwdByUsername(jtf.getText()));
        if (UserServices.getPwdByUsername(jtf.getText()).equals(jpwd.getText())) {
            this.dispose();
            AdminManage.setvisi();
        } else {
            System.out.println(jpwd.getText());
            System.out.println(UserServices.getPwdByUsername("admin"));
            System.out.println("密码错误");
        }
    }
}
public static void main(String[] args) throws Exception {  
    try {
        UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    } catch (Exception e) {
    }
    new AdminLogin();  
    new AdminManage();
    new TakePhoto();
}  

}

这是管理界面的

package com.pag.admin;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Vector;

import javax.imageio.stream.FileImageInputStream;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;

import com.pag.entity.User;
import com.pag.services.UserServices;
import com.pag.winControl.TakePhoto;

public class AdminManage extends JDialog implements ActionListener {

static JDialog jd = new JDialog();

/**
 * 
 */
private static final long serialVersionUID = 1L;
private Map<String, JPanel> panels;
private MainPane mainPane;
private JButton check = new JButton("查看照片");
private JButton dele = new JButton("删除用户");
private JButton edit = new JButton("更新信息");
private JButton reFresh = new JButton("刷新");
private JButton select = new JButton("选择图片");
private JButton camera = new JButton("进行拍照");
private JButton commit = new JButton("添加新用户");
private JButton update = new JButton("提交更新");
private JButton close = new JButton("关闭");

// 获取显示器属性
static Dimension d = Toolkit.getDefaultToolkit().getScreenSize();

// 内部类,主面板
private class MainPane extends JPanel {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    JTabbedPane tabs;

    MainPane() {
        setLayout(new BorderLayout());
        tabs = new JTabbedPane();
        add(BorderLayout.CENTER, tabs);
        add(BorderLayout.SOUTH, new Buttons());
    }

    // 添加组件
    public Component addTab(String title, Component component) {
        return tabs.add(title, component);
    }
}

// 所有数据界面
JTable tableView = new tableView();
class view extends JPanel {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    view() throws Exception{
        setLayout(new BorderLayout());
        JScrollPane pane = new JScrollPane(tableView);
        add(pane);
        setVisible(true);
    }
}
// 获取选中行的ID
public int getID(JTable jt){
    // 选中行
    int rowNum = jt.getSelectedRow();
    // 获取选中的ID
    return Integer.valueOf((String) jt.getValueAt(rowNum, 0));
}

// 查看照片------------------------------------------------------------------------------------------------------------------
public void checkPhoto() throws Exception{
    UserServices.getPhoto(getID(tableView));
    String path = "D:\\temporary\\tempora.jpg";
    JFrame jf = new JFrame();
    ImageIcon img = null;
    JLabel label = new JLabel();
    System.out.println("获取图片");
    System.out.println(new File(path).length());
    img = new ImageIcon(path);
    img.setImage(img.getImage().getScaledInstance(400, 400,Image.SCALE_DEFAULT));
    label.setIcon(img);
    jf.add(label);
    jf.setSize(400, 400);
    jf.setAlwaysOnTop(true);
    jf.setResizable(false);
    jf.setLocationRelativeTo(null);
    jf.setVisible(true);
}

// 更新信息--------------------------------------------------------------------------------------------------------------------
public void edit(){

    User user = new User();
    user.setId(getID(tableView));
    user.setPassword(jtfs.get(1).getText());
    user.setMobile(jtfs.get(4).getText());
    user.setIsOff(Integer.valueOf(jtfs.get(5).getText()));
    try {
        user.setUserImg(image2byte(jtfs.get(6).getText()));
    } catch (Exception e) {
    }
    user.setImgFeature(null);
    try {
        UserServices.editUser(user);
        System.out.println("update success");
    } catch (Exception e1) {
        e1.printStackTrace();
    }
}

// 图片转换为byte
public byte[] image2byte(String path) {
    byte[] data = null;
    FileImageInputStream input = null;
    try {
        input = new FileImageInputStream(new File(path));
        ByteArrayOutputStream output = new ByteArrayOutputStream();
        byte[] buf = new byte[1024];
        int numBytesRead = 0;
        while ((numBytesRead = input.read(buf)) != -1) {
            output.write(buf, 0, numBytesRead);
        }
        data = output.toByteArray();
        output.close();
        input.close();
    } catch (FileNotFoundException ex1) {
        ex1.printStackTrace();
    } catch (IOException ex1) {
        ex1.printStackTrace();
    }
    return data;
}

// 删除记录
public int delete() throws Exception{
    UserServices.delet(getID(tableView));
    return 1;
}

// 添加新用户或更新信息
static JPanel jp;
static JLabel jl;
String sexs = "(男1,女0)";
String isoff = "(1√,0×)";
String[] columns = {"*用户名:", "*密码:", "*姓名:", "*性别"+sexs+":", "手机:", "*可否登录"+isoff+":","照片:"};
static List<JTextField> jtfs;
{
    jtfs = new ArrayList<JTextField>();
    for (int i = 0; i < 7; i++){
        jtfs.add(new JTextField());
    }
}
public class addOrEdit extends JPanel {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    addOrEdit(){
        setLayout(new GridLayout(9, 1, 5, 5));
        for (int i = 0; i < 7; i++) {
            jp = new JPanel();
            jl = new JLabel(columns[i]);
            jp.setLayout(new GridLayout(1,2,5,5));
            jl.setFont(new Font("宋体", Font.BOLD, 32));
            jp.add(jl);
            jp.add(jtfs.get(i));
            add(jp);
        }
        JLabel label = new JLabel("*为必填信息");
        label.setFont(new Font("宋体", 0, 18));
        label.setForeground(Color.red);
        add(label);
        add(new Buttons(""));
        setVisible(true);
    }
}

// 获取原数据到更新
void dataTOEdit(){
    try{
        for (int i = 0; i < 7; i++) {
            if (i == 0||i==2||i == 3) {
                jtfs.get(i).setEditable(false);
            }
            jtfs.get(i).setText((String) tableView.getValueAt(tableView.getSelectedRow(), i+1));
        }
    }catch (Exception e){
        // do nothing···
    }
}

// 弹窗选择照片
static void chooseFile(Component com) {
    JFileChooser jfc = new JFileChooser();
    jfc.setMultiSelectionEnabled(false); 
    if (jfc.showOpenDialog(com) == JFileChooser.APPROVE_OPTION) {
        String filepath = jfc.getSelectedFile().getAbsolutePath();
        jtfs.get(6).setText(filepath);
    }
    jfc.setVisible(true);
}

// 添加新用户
void addNewUser() {
    User user = new User();
    try {
        user.setId(UserServices.getLastId()+1);
    } catch (Exception e1) {
        e1.printStackTrace();
    }
    user.setUsername(jtfs.get(0).getText());
    user.setPassword(jtfs.get(1).getText());
    user.setReanName(jtfs.get(2).getText());
    user.setSex(jtfs.get(3).getText());
    user.setMobile(jtfs.get(4).getText());
    user.setIsOff(Integer.valueOf(jtfs.get(5).getText()));
    if (jtfs.get(6).getText().equals("")||jtfs.get(6).getText()==null) {
        user.setUserImg(null);
    }else {
        try {
            System.out.println(image2byte(jtfs.get(6).getText()));
            user.setUserImg(image2byte(jtfs.get(6).getText()));
            System.out.println(user.getUserImg());
            System.out.println(image2byte(jtfs.get(6).getText())==user.getUserImg());
        } catch (Exception e1) {
            e1.printStackTrace();
        }
    }
    user.setImgFeature(null);
    try {
        UserServices.add(user);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

// 所有数据table
private class tableView extends JTable{

    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    String[] columns = { "ID","用户名", "密码", "姓名", "性别", "手机", "可否登录"};
    DefaultTableModel dataModel = new DefaultTableModel(null,columns);
    ResultSet rs;
    // 查看
    tableView() throws Exception{

        setRowHeight(25);
        int count = dataModel.getRowCount();
        while (count > 0) {
            dataModel.removeRow(0);
        }
        rs = UserServices.viewRs();
        while (rs.next()) {
            String id = rs.getString(1);
            String userName = rs.getString(2);
            String pwd = rs.getString(3);
            String name = rs.getString(4);
            String sex = rs.getString(5);
            String mobile = rs.getString(6);
            String isOff = rs.getString(7);
            //Blob b = rs.getBlob("");
            Vector<String> v = new Vector<String>();
            v.add(id);
            v.add(userName);
            v.add(pwd);
            v.add(name);
            v.add(sex);
            v.add(mobile);
            v.add(isOff);
            dataModel.addRow(v);
        }
        setModel(dataModel);
    }

    public boolean isCellEditable(int row,int column){
        return false;
    }
}

// 所有按钮
private class Buttons extends JPanel {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    // 构造器
    Buttons() {
        setLayout(new FlowLayout(FlowLayout.RIGHT, 6, 1));
        add(check);
        add(dele);
        add(edit);
        add(reFresh);
        add(close);
    }
    Buttons(String s){
        setLayout(new FlowLayout(FlowLayout.RIGHT, 6, 1));
        add(select);
        add(camera);
        add(commit);
        add(update);
    }
}

// 所有按钮事件
@SuppressWarnings("deprecation")
public void actionPerformed(ActionEvent e) {
    if (e.getActionCommand().equals("查看照片")){
        if (tableView.getSelectedRowCount()<=0) {
            System.out.println("未选中用户");
        }else {
            System.out.println("查看照片");
            try {
                checkPhoto();
            } catch (Exception e1) {
                e1.printStackTrace();
            }
        }
    }
    if (e.getActionCommand().equals("删除用户")){
        if (tableView.getSelectedRowCount()<=0) {
            System.out.println("未选中用户");
        }else {
            System.out.println("删除用户");
            getID(tableView);
            try {
                delete();
                if(delete() == 1){
                    System.out.println("删除成功");
                }
            } catch (Exception e1) {
                e1.printStackTrace();
            }
        }
    }
    if (e.getActionCommand().equals("更新信息")){
        if (tableView.getSelectedRowCount()<=0) {
            System.out.println("未选中用户");
        }else {
            System.out.println("更新信息");
            dataTOEdit();
        }
    }
    if (e.getActionCommand().equals("刷新")){
        System.out.println("刷新界面");
        dispose();
        try {
            new AdminManage();
        } catch (Exception e1) {
            e1.printStackTrace();
        }
        setvisi();
    }
    if (e.getActionCommand().equals("关闭")){
        System.out.println("关闭");
        System.exit(0);
        TakePhoto.close();
    }
    if (e.getActionCommand().equals("选择图片")){
        System.out.println("选择图片");
        chooseFile(this);
    }
    if (e.getActionCommand().equals("进行拍照")){
        System.out.println("摄像机拍照");
        TakePhoto.view();
        this.hide();
        try {
            Thread.sleep(2000);
        } catch (InterruptedException e1) {
            e1.printStackTrace();
        }
        TakePhoto.screenShot();
        try {
            Thread.sleep(2000);
        } catch (InterruptedException e1) {
            e1.printStackTrace();
        }
        this.setVisible(true);
        TakePhoto.hide();
        jtfs.get(6).setText("D:/temporary/tempor.jpg");
    }
    if (e.getActionCommand().equals("添加新用户")){
        System.out.println("添加新用户");
        try {
            addNewUser();
        } catch (Exception e1) {
            e1.printStackTrace();
        }
    }
    if (e.getActionCommand().equals("提交更新")){
        System.out.println("提交更新");
        try {
            edit();
        } catch (Exception e1) {
            e1.printStackTrace();
        }
    }
}

// 主类构造器
public AdminManage() throws Exception {
    init();
    jd.setTitle("用户管理");
    jd.setBounds(d.width/2-400, d.height/2-300, 800, 600);
    jd.setLocationRelativeTo(null);
    jd.setDefaultCloseOperation(DISPOSE_ON_CLOSE);

    mainPane = new MainPane();
    jd.setContentPane(mainPane);
    jd.setVisible(false);

    jd.addWindowListener(new WindowAdapter() {
        public void windowClosing(WindowEvent e) {
            System.exit(0);
        }
    });

    check.addActionListener(this);
    dele.addActionListener(this);
    edit.addActionListener(this);
    reFresh.addActionListener(this);
    select.addActionListener(this);
    camera.addActionListener(this);
    commit.addActionListener(this);
    close.addActionListener(this);
    update.addActionListener(this);

    installTabs();
}

public static void setvisi(){
    jd.setVisible(true);
}

// 初始化,创建标签
private void init() throws Exception {
    panels = new LinkedHashMap<String, JPanel>();
    panels.put("查看用户信息", new view());
    panels.put("添加/更新用户信息", new addOrEdit());
}

// 标签加入到组件
private void installTabs() {
    for (String s : panels.keySet()){
        mainPane.addTab(s, panels.get(s));
    }
}

public static void main(String[] args) throws Exception {

    try {
        UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    } catch (Exception e) {
    }
    new AdminManage();
    new TakePhoto();
}

}

主要的代码就这些,调用摄像头、和人脸识别的那些就是调用而已。现在就是导出后这里面的功能都不正常了

别沉啊,大佬们,帮帮忙,谢谢啦

右击项目,单击export=》java=》选第三个Runnable Jar file (可执行的jar文件),Next,
选择launch configuration(程序入口配置),Exportdestination(导出目标)
Library handing:
选择第一个 引用的jar包会整合到项目中去。
选择第二个 引用的jar包会单独放在项目根目录下。
选择第三个 引用的jar包会单独放在一个文件夹下,这个文件夹和导出的jar放在同一目录下,
finish。
好像是这样的顺序 看了一眼 ,可以对照下如果正确咱们再讨论

library handling:下的Copy required libraries into a sub-folder next to the generatedJAR --->finish

导出成功会有两个文件夹 : jar 跟 x_lib ,这两个文件夹在一个目录下(必须的) 弄好了再运行下试试 结果


搜了下,给你连接 看看管用么 http://blog.csdn.net/hqs_1992/article/details/50899878