in meinem Java-Programm soll der Standard-EMail-Client auf dem Rechner geöffnet werden und einen Anhang anhängen.
Auswahl des Standard-Clients funktioniert soweit durch auslesen der registry ganz gut.
Um Outlook zu öffnen benutze ich die Jacob-COM-Bridge doch leider bekomme ich jedesmal die gleiche Fehlermeldung und Outlook lässt sich
nicht öffnen. Das eigenartige und mir unerklärliche dabei ist, das die Exception beim erzeugend es “ActiveXComponent(“Outlook.Application”)” kommt. Unerklärlich für mich ist dabei, dass wenn ich an der Stelle ActiveXComponent(“Excel.Application”) eintrage, also Excel öffnen möchte, funktioniert es und Excel wird geöffnet.
Hier einmal der Code und unten habe ich mal die Fehlermeldung eingefügt.
Hat einer eine Idee was an der Stelle nicht korrekt ist? Ich habe das bereits an zwei unterschiedlichen Rechnern getestet, aber leider mit gleichem Ergebnis.
Ich bin für jeden Tip dankbar auch wenn es andere Möglichkeiten gibt die Anforderung
“Outlook zu starten und eine email mit Anhang zu erzeugen”
zu erfüllen.
Fehlermeldung
Exception in thread “AWT-EventQueue-0” com.jacob.com.ComFailException: Can’t co-create object
at com.jacob.com.Dispatch.createInstanceNative(Native Method)
at com.jacob.com.Dispatch.(Dispatch.java:99) at com.jacob.com.Dispatch.(Dispatch.java:99)
at com.jacob.activeX.ActiveXComponent.(ActiveXComponent.java:58)
danke für die schnelle Antwort.
Ja, habe ich bereits ausprobiert und funktioniert leider nicht.
Habe mailTo mit dem Processbuilder und auch getDesktop ausprobiert, aber ohne Ergebnis.
Mit nur einem Wort : OUCH !
Ich frage mich immer wieder : Warum missbraucht man Java dazu irgendwelche platformspezifischen Aufgaben triggern zu wollen statt diese entweder direkt selbst mit Java umzusetzen oder halt System-eigene Dinge nutzt ?
In diesem Fall : Warum lokalen Standard-Client öffnen statt mit Java-Mail selbst zu arbeiten ? Oder eben halt was System-eigenes nehmen (DotNET) um die gewünschte Aktion auszulösen.
Wie ich schon mal wo anders schrieb : Java ist eigentlich nicht dazu gedacht als simples Spielzeug zu dienen um irgendwas über CMD zu triggern … zumindest nicht meiner Ansicht nach.
[QUOTE=Sen-Mithrarin]Mit nur einem Wort : OUCH !
Ich frage mich immer wieder : Warum missbraucht man Java dazu irgendwelche platformspezifischen Aufgaben triggern zu wollen statt diese entweder direkt selbst mit Java umzusetzen oder halt System-eigene Dinge nutzt ?
In diesem Fall : Warum lokalen Standard-Client öffnen statt mit Java-Mail selbst zu arbeiten ? Oder eben halt was System-eigenes nehmen (DotNET) um die gewünschte Aktion auszulösen.
Wie ich schon mal wo anders schrieb : Java ist eigentlich nicht dazu gedacht als simples Spielzeug zu dienen um irgendwas über CMD zu triggern … zumindest nicht meiner Ansicht nach.[/QUOTE]
Warum soll ich nicht den Standard-Client öffnen?
1.) Wie Bleiglanz schon geschrieben hat, damit muss der User nicht in meinem Programm auch noch seine Mail credentials eintragen.
2.) Der User hat in seinem Mail-Programm wahrscheinlich auch ein Adressbuch und damit kann das auch verwendet werden.
3.) Viele Anwender sind Ihr Mail-Programm gewöhnt und warum soll man daher funktionierende Sachen nicht wiederverwenden?
Also es gibt viele Gründe warum man das machen sollte.
Was sollte hier missbraucht werden? Wenn du mir bitte erklären könntest was du damit meinst.
D.H. sobald man auch nur ein externes Programm anspricht darf man Java nicht mehr verwenden? Dann muss ich wohl mein Programm komplett umschreiben, da ich glaub ich im Moment 7 verschiedene Mail-clients anspreche, sowohl Linux, Windows und Mac.
Und selbst wenn ich nur eine Windows-only Anwendung geschrieben hätte, würde das Java nicht ausschließen.
Aber auch egal deine Sichtweise ist in meinen Augen etwas zu stark eingeschränkt.
Die Klasse Dekstop wurde extra dafür geschrieben um für sowas “misbraucht” zu werden. Ich sehe die Klasse als groe Errungenschaft in der Plattformunabhängigkeit von Java vor allem für Endanwender.