簡體   English   中英

如何導入此 API Java? 類路徑?

[英]How do I import this API Java? CLASSPATH?

操作系統:MAC OSX Big Sur 11.2.1

我正在嘗試讓“TKLjavax.mail-1.5.6.jar”文件工作/導入到我的代碼中。

我試圖設置我的 CLASSPATH,這就是它的樣子。

echo CLASSPATH=$CLASSPATH:/Users/name/Desktop/javaStuff/TKLjavax.mail-1.5.6.jar;.

這假設允許我導入這些:(在我的 Java 文件的開頭,其中包含我的代碼)

import javax.mail.*;
import javax.mail.internet.*;
import com.sun.mail.imap.*;

我收到一個錯誤,它說:

error: package javax.mail does not exist
import javax.mail.*;
^
error: package javax.mail.internet does not exist
import javax.mail.internet.*;

error: package com.sun.mail.imap does not exist
import com.sun.mail.imap.*;
^

...以及更多錯誤,無法找到這些導入的符號。

我是 Stack Overflow 的新手,所以請放輕松。 我只是想讓我的代碼正常工作,我嘗試了許多不同的方法來保存 CLASSPATH,但我一直收到同樣的錯誤。

我幾乎肯定這是正確的.jar 文件,並且允許這些包工作。

==========================================

添加在:

我已將新的 CLASSPATH 添加到我的 batch_profile

echo CLASSPATH=$CLASSPATH:/Users/name/Desktop/javaStuff/javax.activation-1.2.0.jar;.

我不知道這個新的CLASSPATH 是否有幫助。

我已經讓程序通過javac -cpjava -cp運行,我的完整代碼行是

javac -cp /Users/name/Desktop/javaStuff/javax.activation-1.2.0.jar -cp /Users/name/Desktop/javaStuff/TKLjavax.mail-1.5.6.jar Example.java

java -cp /Users/name/Desktop/javaStuff/javax.activation-1.2.0.jar -cp /Users/name/Desktop/javaStuff/TKLjavax.mail-1.5.6.jar Example.java

現在我收到一條錯誤消息:

Exception in thread "main" java.lang.NoClassDefFoundError: javax/activation/DataHandler

這些包不存在

不存在 java 工具會產生這個確切的錯誤。 請粘貼整個錯誤,不要解釋它。

. echo CLASSPATH=$CLASSPATH:/Users/name/Desktop/javaStuff/TKLjavax.mail-1.5.6.jar;.

不推薦編輯全局 CLASSPATH 變量。

只需運行javac -cp /path/to/jar *.java. Do you really have a file named javac -cp /path/to/jar *.java. Do you really have a file named TKLJavax.mail 的文件嗎? 我認為您在 TKL 和 javax 之間忘記了一個正斜杠

如果您確信所有設置都正確,並且沒有丟失正斜杠,那么聽起來您有一些定制的 javax.mail 變體。 So let's check if that jar is actually valid: java -cp /Users/name/Desktop/javaStuff/TKLjavax.mail-1.5.6.jar com.sun.mail.imap.TheClassYouAreUsing - check which error this gives you. 它應該給你:'在 class 中找不到主要方法......'。 如果它給您“無法找到或加載主 class ....” - 那么 jar 已損壞或無法在類路徑上使用。

我不能將兩個 -cp arguments 用於 javac 和 java 線。

這是正確的方法:

javac -cp /Users/name/Desktop/javaStuff/javax.activation-1.2.0.jar:/Users/name/Desktop/javaStuff/TKLjavax.mail-1.5.6.jar Example.java

java -cp /Users/name/Desktop/javaStuff/javax.activation-1.2.0.jar:/Users/name/Desktop/javaStuff/TKLjavax.mail-1.5.6.jar Example.java

該程序現在符合並運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM