私のコードがIDEでうまく動作し、javax.mail.jar
が依存関係にあり、コードがうまく動作します。Javaアプリケーションを.jar依存関係で実行できません - 'エラー:メインクラスを見つけられないか読み込めませんでした'
私はConsole console = System.console();
を使用すると、これはだから私は私のコードをコンパイルし、端子を介してそれを実行しようとしていますIDEの
内で動作しません必要な場合を除き、私のコードを実行しているとき、それはエラーを返しますが、私がコンパイルできます。
Error: Could not find or load main class Main
これは私がコンパイルするために行うものです。
javac -cp "./javax.mail.jar" Main.java
を次にそれを実行する:
java -cp "./javax.mail.jar" Main
が、私はエラーを取得:メインクラスメイン
を見つけるか、ロードできませんでした。これは私の完全なコードです:
package com.company;
import java.io.IOException;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class Main {
public static void main(String[] args) throws IOException {
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "465");
Session session = Session.getDefaultInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("[email protected]","pass");
}
});
try {
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("[email protected]"));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("[email protected]"));
message.setSubject("JavaMail");
message.setText("Hi," + "\n\n This is a test");
Transport.send(message);
System.out.println("Sent!");
} catch (MessagingException e) {
throw new RuntimeException(e);
}
}
}
編集: はまた、親ディレクトリから実行してみました(これは持っています私のcomフォルダとjava.mail.jar
):
java -cp "./javax.mail.jar;." com.company.Main
しかし、私はこれを取得:
Error: Could not find or load main class com.company.Main
'java -cp ./javax.mail.jar :. Main'以外の場合、Mainが存在するディレクトリはクラスパスにないため、エラーになります。クラスファイルをjarファイルと同じディレクトリに格納するのは悪い考えです。デフォルトのパッケージを使用することも悪い考えです。 –