所以我的代碼在我的IDE中運行良好,並且我將javax.mail.jar
設置爲依賴項,我的代碼運行良好。無法使用.jar依賴運行java應用程序 - '錯誤:無法找到或加載主類'
除非我需要使用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文件相同的目錄中是一個壞主意。使用默認包也是一個壞主意。 –