2015-05-14 131 views
-2

我试图将我的项目构建为JAR文件;但运行该文件后,出现一条消息:“无法找到主要类:登录” 我看了,我搜索,但没有解决方案,该项目的主要类是'登录'。在Java项目中查找主类

有类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     
} 

什么问题吗?

+0

提示:类名以Java中的大写字母开头。并且不要将类放在默认包中。关于你的问题:你如何构建JAR?你在用Ant,Maven,...?你在使用IDE吗? – 2015-05-14 11:18:16

+0

我正在使用netbeans ide8.0 – ala

+0

您如何在Netbeans中构建项目? – 2015-05-14 11:25:03

回答

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在你的模块的/目标文件夹。

0

您似乎是NetBeans和Java的新手。这很简单。
1.右键单击NetBeans中Project Explorer中的项目。
2.选择属性(最后一个选项)。
3.弹出一个窗口,选择运行
4.在右侧,单击浏览“Main Class:”选项。
5.选择你的主类。

现在,你完成了。只需清理并重新构建。

+0

我做了你所要求的,但结果相同:无法找到主要类:登录“ – ala