在Java中查找项目中的主类

时间:2015-05-14 11:16:50

标签: java swing

我尝试将项目构建为JAR文件;但运行该文件后,会出现一条消息:“找不到主类:登录” 我查看并搜索,但没有解决方案,项目的主要类别是“登录”。

有一个班级login

import java.sql.Connection;

import static java.sql.DriverManager.getConnection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;

public class login extends javax.swing.JFrame {

    Connection con = null;
    ResultSet rs = null;
    Statement stmt = null;
    public static String nu = "";
//construction de la fenetre login   

    public login() {
        initComponents();
        this.setResizable(false);
        this.pack();
        java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
        this.setLocation(
            (screenSize.width - this.getWidth()) / 2,
            (screenSize.height - this.getHeight()) / 2);
    }

    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        Login = new javax.swing.JPanel();
        jTextField1 = new javax.swing.JTextField(AppPreferences.getLastUserName());
        jButton1 = new javax.swing.JButton();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jButton2 = new javax.swing.JButton();
        p1 = new javax.swing.JLabel();
        p2 = new javax.swing.JLabel();
        jPasswordField1 = new javax.swing.JPasswordField();
        jLabel3 = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Login");
        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowOpened(java.awt.event.WindowEvent evt) {
                formWindowOpened(evt);
            }
        });

        Login.setBackground(new java.awt.Color(255, 255, 255));
        Login.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(0, 0, 0), 1, true));
        Login.setPreferredSize(new java.awt.Dimension(517, 271));

        jTextField1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextField1ActionPerformed(evt);
            }
        });

        jButton1.setText("LOGIN");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });
        jButton1.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                jButton1KeyTyped(evt);
            }
        });

        jLabel1.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        jLabel1.setText("User name");

        jLabel2.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        jLabel2.setText("Password");

        jButton2.setText("QUIT");
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });
        jButton2.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                jButton2KeyTyped(evt);
            }
        });

        p1.setFont(new java.awt.Font("Times New Roman", 0, 14)); // NOI18N
        p1.setForeground(new java.awt.Color(204, 51, 0));

        p2.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        p2.setForeground(new java.awt.Color(0, 0, 255));
        p2.setText("              ");

        jLabel4.setIcon(new javax.swing.ImageIcon(getClass().getResource("/application/backoffice1/Ooredoo_Logo.png"))); // NOI18N

        javax.swing.GroupLayout LoginLayout = new javax.swing.GroupLayout(Login);
        Login.setLayout(LoginLayout);
        LoginLayout.setHorizontalGroup(
            LoginLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(LoginLayout.createSequentialGroup()
                .addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, 450, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(255, 255, 255)
                .addComponent(jLabel3)
                .addGap(0, 0, Short.MAX_VALUE))
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, LoginLayout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(LoginLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(LoginLayout.createSequentialGroup()
                        .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 72, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jPasswordField1, javax.swing.GroupLayout.PREFERRED_SIZE, 138, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(LoginLayout.createSequentialGroup()
                        .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 72, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 138, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addGap(337, 337, 337))
            .addGroup(LoginLayout.createSequentialGroup()
                .addGap(206, 206, 206)
                .addGroup(LoginLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(LoginLayout.createSequentialGroup()
                        .addComponent(jButton1)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jButton2))
                    .addGroup(LoginLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addComponent(p1, javax.swing.GroupLayout.PREFERRED_SIZE, 236, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(p2, javax.swing.GroupLayout.PREFERRED_SIZE, 153, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        LoginLayout.setVerticalGroup(
            LoginLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(LoginLayout.createSequentialGroup()
                .addGroup(LoginLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(LoginLayout.createSequentialGroup()
                        .addGap(20, 20, 20)
                        .addComponent(jLabel3))
                    .addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, 99, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(LoginLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(LoginLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jPasswordField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(p1, javax.swing.GroupLayout.PREFERRED_SIZE, 24, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(p2, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(LoginLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jButton2)
                    .addComponent(jButton1))
                .addContainerGap())
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(Login, javax.swing.GroupLayout.DEFAULT_SIZE, 450, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(Login, javax.swing.GroupLayout.DEFAULT_SIZE, 278, Short.MAX_VALUE)
        );

        pack();
    }// </editor-fold>                        

    private void formWindowOpened(java.awt.event.WindowEvent evt) {
// TODO add your handling code here:

    }

    /*Action du bouton QUIT activ avec la souris
     Ce bouton permet de fermer la fenetre d'authentification
     */
    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
        System.exit(0);
    }

    /*Action du bouton LOGIN activ avec la souris
     Ce bouton permet de valider l'identité de la personne selon les champs    remplies
     */
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
        try {
            AppPreferences.getLastUserName();

            // le meme déroulement qu'en action performed
            String Sql = "Select  username,password   from   acteur    where username ='" + jTextField1.getText() + "'and password ='" + jPasswordField1.getText() + "'";
            con = getConnection("jdbc:mysql://localhost:3306/base_rapport", "root", "");
            stmt = con.createStatement();
            rs = stmt.executeQuery(Sql);
            if (rs.next()) {

                AppPreferences.saveUserName(jTextField1.getText());
                p2.setText("welcome " + jTextField1.getText());
                nu = jTextField1.getText();
                p1.setText("");
                Principale s = new Principale();
                s.setVisible(true);
                this.dispose();

            } else {

                p1.setText("Invalid user name or password");

            }
        } catch (SQLException e) {
            JOptionPane.showMessageDialog(this, "No data base connection");
        }

    }

    /*Action du bouton LOGIN active avec la touche Eter
     Ce bouton permet de valider l'identité de la personne selon les champs    remplies
     */
    private void jButton1KeyTyped(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
        try {
            AppPreferences.getLastUserName();

            // le meme déroulement qu'en action performed
            String Sql = "Select  username,password   from   acteur    where username ='" + jTextField1.getText() + "'and password ='" + jPasswordField1.getText() + "'";
            con = getConnection("jdbc:mysql://localhost:3306/base_rapport", "root", "");
            stmt = con.createStatement();
            rs = stmt.executeQuery(Sql);
            if (rs.next()) {

                //JOptionPane.showMessageDialog(this,"welcome "+jTextField1.getText());
                AppPreferences.saveUserName(jTextField1.getText());
                p2.setText("welcome " + jTextField1.getText());
                nu = jTextField1.getText();
                p1.setText("");
                Principale s = new Principale();
                s.setVisible(true);
                this.dispose();

            } else {
                //JOptionPane.showMessageDialog(this,"invalid username or password");

                p1.setText("Invalid user name or password");

            }
        } catch (SQLException e) {
            JOptionPane.showMessageDialog(this, "No data base connection");
        }

    }

    /*Action du bouton QUIT activ avec la touche Enter
     Ce bouton permet de fermer la fenetre d'authentification
     */
    private void jButton2KeyTyped(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
        System.exit(0);
    }

    private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
          /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(login.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
//</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                new login().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify                     
    private javax.swing.JPanel Login;
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JPasswordField jPasswordField1;
    private javax.swing.JTextField jTextField1;
    private javax.swing.JLabel p1;
    private javax.swing.JLabel p2;
    // End of variables declaration                   
}

请问有什么问题?

2 个答案:

答案 0 :(得分:0)

使用maven构建项目非常简单。在项目的根文件夹中添加pom.xml基本结构。

的pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">


</project>

然后从项目的根文件夹中从命令提示符运行命令。

mvn clean install

多数民众赞成你将把你的jar放在模块的/ target文件夹中。

答案 1 :(得分:0)

您似乎是NetBeans和Java的新手。这很简单 1.在NetBeans中的Project Explorer中右键单击您的项目 2.选择属性(最后一个选项) 3.弹出一个窗口,选择运行
4.在您的右手边,点击浏览&#34; Main Class:&#34;选项。
5.选择您的主要班级
现在,你已经完成了。只需清理并再次构建。