2016-06-10 8 views
1

Ich versuche, eine JAR-Datei aus dem folgenden Code zu machen:kann nicht .jar-Datei ausführen

public class Main { 

    public static void main(String[] args) { 

     boolean net = true; 
     int num = 0; 

     do { 
      if (netIsAvailable()) { 
       webCapture(); 
       mailSend(); 
       net = false; 
      } 

     } while (net); 

     System.exit(0); 

    } 

    public static void webCapture() { 
     // get default webcam and open it 
     Webcam webcam = Webcam.getDefault(); 

     webcam.setViewSize(new Dimension(640, 480)); 

     // creates test2.jpg 
     WebcamUtils.capture(webcam, "test2", "jpg"); 
    } 

    private static boolean netIsAvailable() { 
     try { 
      final URL url = new URL("http://www.google.com"); 
      final URLConnection conn = url.openConnection(); 
      conn.connect(); 
      return true; 
     } catch (MalformedURLException e) { 
      throw new RuntimeException(e); 
     } catch (IOException e) { 
      return false; 
     } 
    } 

    public static void mailSend() { 
     final String username = "[email protected]"; 
     final String password = "anaaremere"; 

     Properties props = new Properties(); 
     props.put("mail.smtp.auth", "true"); 
     props.put("mail.smtp.starttls.enable", "true"); 
     props.put("mail.smtp.host", "smtp.gmail.com"); 
     props.put("mail.smtp.port", "587"); 

     Session session = Session.getInstance(props, 
       new javax.mail.Authenticator() { 
        protected PasswordAuthentication getPasswordAuthentication() { 
         return new PasswordAuthentication(username, password); 
        } 
       }); 

     try { 

      Message message = new MimeMessage(session); 
      message.setFrom(new InternetAddress(username)); 
      message.setRecipients(Message.RecipientType.TO, 
        InternetAddress.parse("[email protected]")); 
      message.setSubject("Your computer has been accessed"); 
      message.setText("Congratulation!"); 

      MimeBodyPart messageBodyPart = new MimeBodyPart(); 

      Multipart multipart = new MimeMultipart(); 

      messageBodyPart = new MimeBodyPart(); 
      String file = "C:\\Fast\\JDBCDemoApp\\webCamSpy\\test2.jpg"; 
      String fileName = "attachmentName"; 
      DataSource source = new FileDataSource(file); 
      messageBodyPart.setDataHandler(new DataHandler(source)); 
      messageBodyPart.setFileName(fileName); 
      multipart.addBodyPart(messageBodyPart); 

      message.setContent(multipart); 

      Transport.send(message); 

      System.out.println("done, email sent ok"); 

     } catch (Exception e) { 
      System.out.println("Email sending problems"); 
      e.printStackTrace(); 


     } 
    } 

} 

Adaequat, kompiliert und läuft ohne Probleme, aber wenn ich tun: Datei | Projektstruktur | Artefakte klicken Sie auf das Plussymbol und erstellen Sie ein neues Artefakt. Wählen Sie -> jar -> Aus Modulen mit Abhängigkeiten.

Build | Build-Artefakte und wenn ich versuche, die neu erstellte JAR-Datei ausführen, bekomme ich den Fehler: Ein Jni-Fehler ist aufgetreten überprüfen Sie bitte Ihre Installation und versuchen Sie es erneut. Irgendeine Idee, wie man das löst?

+0

Es könnte etwas mit dem ide zu tun haben, die Sie verwenden. Warum nicht über Kommandozeile/Terminal laufen? – user2277872

+0

Welche IDE benutzen Sie? – sixtytrees

+0

Nicht alle Gläser sind runnable erstellt. Ein runnable Java muss eine MAINIFEST.MF haben, die die Hauptklasse angibt. Wenn Sie uns sagen, welche IDE Sie verwenden, können Sie uns einige Hinweise geben. –

Antwort

1

Was machst du, um das Glas zu betreiben?

Von Befehlszeile: java -jar name_of_your_created.jar

+0

ich gemacht erkannt die App zu sehen, wer meinen Laptop in meiner Abwesenheit verwendet, so machte ich eine Verknüpfung des Glases und legte es in den Windows-Startordner, um Windows-Start –

+0

ausführen, aber ich versuchte es mit anderen Glas und es funktioniert wie ein Charme –

+0

Form Befehlszeile Ich bekomme den Fehler: nicht auf jarFile zugreifen –

Verwandte Themen