0

すでにこれにはあまりにも多くの質問があります。重複の可能性:
1.電子メール クライアントを開いて Java でファイルを自動的に添付する方法
2.添付ファイル付きのメール クライアントを起動しますか?

私の要件は次のとおりです。 1. Java からデフォルトの電子メール クライアントを開きます。
2. Java から「宛先」アドレス、件名、および本文テキストを追加します。
3.メールにファイルを添付する

ただし、これらの 2 つは私にとっては機能しません...
JDIC:
JDIC を使用すると、次のエラーが発生します。
java.lang.ClassNotFoundException: org.jdesktop.jdic.desktop.internal.impl.ServiceManagerStub_unix

JMAPI:
JMAPI を使用すると、次のようになります。

java.lang.UnsatisfiedLinkError: org.jdesktop.jdic.desktop.internal.impl.WinAPIWrapper.RegOpenKey(I[BI)[I
    at org.jdesktop.jdic.desktop.internal.impl.WinAPIWrapper.RegOpenKey(Native Method)
    at org.jdesktop.jdic.desktop.internal.impl.WinAPIWrapper.WinRegQueryValueEx(WinAPIWrapper.java:170)
    at jmapi.JMAPI.isMapiSupported(JMAPI.java:40)
    at com.turborep.turbotracker.mail.SendQuoteMail.send(SendQuoteMail.java:120)
    at com.turborep.turbotracker.mail.SendEmail.main(SendEmail.java:77)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:212)
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126)
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578)
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:399)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:317)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:204)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:311)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)

JMAPI は Windows マシンでのみ動作すると思います (jdic.dll ライブラリを開く必要があるため)。
私のマシンは: Ubuntu 12.04 & JDK6

Ubuntuでこれを達成する他の可能性はありますか?

前もって感謝します。

**編集: ** 私のマシンは 64 ビット JVM で実行されています。

4

1 に答える 1

2

あなた(またはあなたが含むいくつかのライブラリ)は、ターゲットオペレーティングシステムごとのバージョンを持ち、ネイティブライブラリ(JNI経由で使用する)を必要とするJDesktop Integration Components(JDIC)プロジェクトを使用しています。

あなたの最初のエラー

java.lang.ClassNotFoundException: org.jdesktop.jdic.desktop.internal.impl.ServiceManagerStub_unix

これはおそらく、ライブラリの Windows (または非 UNIX) バージョンを UNIX マシンにデプロイしたことが原因です。

あなたの2番目のエラー

java.lang.UnsatisfiedLinkError: org.jdesktop.jdic.desktop.internal.impl.WinAPIWrapper.RegOpenKey(I[BI)[I
    at org.jdesktop.jdic.desktop.internal.impl.WinAPIWrapper.RegOpenKey(Native Method)

必要なdllを適切に含めていないか、32ビットdllを使用して64ビットJVMで実行していることを意味します-詳細はこちらを参照してください(これはあなたの正確な問題を抱えている人です)

于 2013-01-11T06:23:20.123 に答える