Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: baumi78 am 24.02.03 - 12:37:55

Titel: Starten externer Java Application
Beitrag von: baumi78 am 24.02.03 - 12:37:55
Gibt es eine Möglichkeit aus Lotus Script ein externes Java Programm zu starten, wenn ja wie kann ich dies realisieren??
Titel: Re:Starten externer Java Application
Beitrag von: Don Pasquale am 24.02.03 - 13:43:14
Probier mal so etwas,
da man mit Shell nur com exe und bat aufrufen kann
musst Du eben java aufrufen und den Programmnamen als Parameter mitgeben

Aufruf = "C:\java\java.exe javaprogramm.java"

taskId% = Shell(Aufruf,1)   

Ciao

Don Pasquale
Titel: Re:Starten externer Java Application
Beitrag von: ata am 24.02.03 - 14:12:29
Zitat
da man mit Shell nur com exe und bat aufrufen kann

... es gehen auch andere Dateien, du mußt nur noch ein START dazwischenklemmen -

taskId% = Shell(START DateiPfad\DateiName.mitEndung )  

... wenn ich es noch richtig weiß...
...ob es allerdingsw mit Java-Applets läuft wage ich zu bezweifeln...

ata
Titel: Re:Starten externer Java Application
Beitrag von: Don Pasquale am 24.02.03 - 14:15:47
@Ata:

WAAS,

und wieso lese ich darüber nichts in der Hilfe ?

ciao

Don Pasquale
Titel: Re:Starten externer Java Application
Beitrag von: ata am 24.02.03 - 14:18:02
... oh Gott - hab ich was angestellt?  :-X :-X :-X

ata
Titel: Re:Starten externer Java Application
Beitrag von: Don Pasquale am 24.02.03 - 14:31:02
Ich hatte das Problem nämlich und die Hilfe ist da ziemlich eindeutig.
Ich musste einiges umstricken, weill ich das vorher anders hatte.
 :(

A string expression whose value is the name of the program to run, including arguments. program can be the name of an executable file that uses a file name extension of BAT, COM, PIF, or EXE


Ciao

Don Pasquale
Titel: Re:Starten externer Java Application
Beitrag von: Performance am 24.02.03 - 14:33:50
ein Java Programm sollte kein Problem sein - ist ja ein normale exe nur in java geschrieben, ein applet müsste auch gehen wobei der Pfad des jdk und der Java Klasse angegeben wird.

- das applet kann auch über ne bat oder com gestartet werden


cu
Titel: Re:Starten externer Java Application
Beitrag von: baumi78 am 24.02.03 - 15:07:59
Probier mal so etwas,
da man mit Shell nur com exe und bat aufrufen kann
musst Du eben java aufrufen und den Programmnamen als Parameter mitgeben

Aufruf = "C:\java\java.exe javaprogramm.java"

taskId% = Shell(Aufruf,1)   

Ciao

Don Pasquale

Wird bei der Übergabe des Programmnamens der gesamte Pfad angegeben und warum .java ?? Außerdem möchte ich dem Javaprogramm selbst auch Parameter übergeben! hast du vielleicht etwas Beispielcode??
Titel: Re:Starten externer Java Application
Beitrag von: Don Pasquale am 24.02.03 - 15:13:44
Hallo baumi,

Warum java ?

Welche Endung hat den das Javaprogramm, dass Du aufrufen willst ?

Dim TasId As Integer

TaskID% = Shell(Java.exe LavaProgramm.java Parameter1 Paramater2 ParameterN,1)


Ich habe leider keinen Beispielcode,
zeig doch mal wie weit Du bist.


Ciao

Don Pasquale
Titel: Re:Starten externer Java Application
Beitrag von: baumi78 am 24.02.03 - 15:40:08
Also im Moment sieht es so aus, ohne Parameterübergabe, ich bekomme als Returncode 33 aber das Programm wird nicht scheinbar nicht korrekt ausgeführt, sollte aber funktionieren. Wenn ich es per "hand" starte klappt es jedenfalls. Meine Shell öffnet sich nur kurz, kann ich das beeinflussen, das ich sehe was überhaupt passiert??

Sub Click(Source As Button)
   Dim aufruf As String
   aufruf= "C:\jdk1.3.1_04\bin\java.exe C:\jdk1.3.1_04\projects\PortWriteSMS.java,1"
   taskId% = Shell(aufruf,1)  
   'Msgbox(taskID%) 'returns 33 if correct started
End Sub
Titel: Re:Starten externer Java Application
Beitrag von: Don Pasquale am 24.02.03 - 15:59:43
Hallo Baumi,

sieht äusserst korrekt aus.
Was Du da schilderst kommt mir aber bekannt vor, allerdings
waren da bei mir die Pfade nicht gesetzt.
Mit Print Aufruf bekommst Du im Debugger den genauen Wortlaut
des Aufrufs.

Dann ein cmd Fenster öffnen
und dann Einfügen. Vielleicht hat Dein Javapgrogramm einen
Fehler oder es wird nicht gefunden.

Ciao

Don Pasquale

Titel: Re:Starten externer Java Application
Beitrag von: baumi78 am 24.02.03 - 16:28:56
Also scheinbar findet er tatsächlich die Klassen nicht, verstehe ich allerdings nicht denn wenn ich das Java Programm im bin verzeichnis starte funktioniert es auch, der Classpath ist scheinbar korrekt gesetzt. Was meinst du mit Pfade nicht gesetzt??
Titel: Re:Starten externer Java Application
Beitrag von: ata am 24.02.03 - 21:43:09
... hier nun der Code zum Starten von Dateien:

   Dim taskId As Integer
   taskId% = Shell("START d:\tabulatur.xls")

... das klappt bislang ganz gut damit...

ata
Titel: Re:Starten externer Java Application
Beitrag von: RedFox am 25.02.03 - 08:47:12


   aufruf= "C:\jdk1.3.1_04\bin\java.exe C:\jdk1.3.1_04\projects\PortWriteSMS.java,1"

Hallo,
da es bekanntlich keine dumme Fragen gibt, hier gleich zwei davon:
- warum übergibst Du die java Datei und nicht die class?
- warum steht im Aufruf-String nochmal die ,1 drin ?

Den Pfad must Du meines Erachtens auch nicht angeben.

Ich habe das mit

aufruf = "c:\j2sdk1.4.1\bin\java NameDerClassDatei"
taskId% = Shell(aufruf,1)

versucht - geht bei mir.

Grüße
Titel: Re:Starten externer Java Application
Beitrag von: baumi78 am 25.02.03 - 10:18:27
O.k. ich hab es hinbekommen, ja das mit .java hatte mich auch etwas irretiert, wäre ja auch etwas komisch gewesen!! Das mit der doppelten 1 als Parameter natürlich auch!! Es funktioniert jetzt jedenfalls und ich kann auch Parameter an das Java Programm übergeben. Vielen Dank für alle Tips und bis zum nächsten Problem.

Grüße Baumi




Sub Click(Source As Button)
   
   Dim aufruf As String
   aufruf= "c:\jdk1.3.1_04\bin\java PortWriteSMS " & """+49172000000""" & " ""Dies ist ein Test"""  
   
   taskId% = Shell(aufruf,1)  
   
End Sub
Titel: Re: Starten externer Java Application
Beitrag von: cash am 26.03.07 - 12:55:04
ich habe so ein ähnliches Problem.

Der Aufruf der Anwendung klappt bei mir ohne Probleme.

Leider sind bei uns im Unternehmen die Programme nicht immer gleich installiert
sondern an 3 Stellen:

c:\Programme\microsoft office PE\Office11\winword.exe oder
c:\Programme\microsoft office SE\Office11\winword.exe oder
c:\Programme\microsoft office\Office11\winword.exe

kann ich irgendwie eine Abfrage basteln
starte erst den ersten Pfad --> wenn nicht 33 zurückgegeben wird probier den nächsten und so weiter... und unterdrück die Fehlermeldung "File not found"

Aber irgendwie kommt bei mir nur die Fehlermeldung File not found und Notes ist fertig....

Cash
Titel: Re: Starten externer Java Application
Beitrag von: Axel am 27.03.07 - 08:26:14
Das ist ein Fall für das Errorhandling. Mehr dazu findest du hier: http://atnotes.de/index.php?topic=11980.0

Axel
Titel: Re: Starten externer Java Application
Beitrag von: cash am 27.03.07 - 09:48:19
Vielen Dank das hat mich ein gutes Stück weiter gebracht. Leider aber nicht bis zum Ziel:

Ich schaffe es jetzt 2 versch. Installationsverzeichnisse anzuspringen aber dann hängt er. Hier mal ein Teil des Codes:

Programm:
   prog=" "
   Select Case lager
   Case "Word" : prog="c:\Programme\Microsoft Office SE\Office11\winword.exe"   
   Case "Excel" : prog="c:\Programme\Microsoft Office SE\Office11\excel.exe"   
   Case "Acrobat Reader" : prog="acrord32"
   End Select
   prog=prog+datei
   If start=0 Then
      On Error 53 Goto Fehler1
      taskId% = Shell(prog, 1)
      Exit Sub      
   End If
   
Fehler1:
   Messagebox "Error1" & Str(Err) & ": " & Error$
   prog=" "
   start=0
   Select Case lager
   Case "Word" : prog="c:\Programme\Microsoft Office PE\Office11\winword.exe"   
   Case "Excel" : prog="c:\Programme\Microsoft Office PE\Office11\excel.exe"         
   Case "Acrobat Reader" : prog="acrord32"
   End Select      
   prog=prog+datei
   If start=0 Then
      On Error 53 Goto Fehler2      
      taskId% = Shell(prog, 1)
      Exit Sub      
   End If
   
Fehler2:
   Messagebox "Error2" & Str(Err) & ": " & Error$
   prog=" "
   start=0
   Select Case lager
   Case "Word" : prog="c:\Programme\Microsoft Office\Office11\winword.exe"   
   Case "Excel" : prog="c:\Programme\Microsoft Office\Office11\excel.exe"   
   Case "Acrobat Reader" : prog="acrord32"
   End Select      
   prog=prog+datei
   If start=0 Then
      On Error 53 Goto Fehler2      
      taskId% = Shell(prog, 1)
      Exit Sub         
   End If
   

Ich vermute mal er will einfach nicht den zweiten on error 53 goto fehler 2 ausführen!

Gibt es dafür eine Lösung?

Gruß

Cash
Titel: Re: Starten externer Java Application
Beitrag von: Axel am 28.03.07 - 08:22:03
Ähm, wenn ich mir den Code so anschaue und ich mich nicht alles täuscht, schickst du ihn in eine Endlosschleife.

...
Fehler2:
   Messagebox "Error2" & Str(Err) & ": " & Error$
..
   If start=0 Then
      On Error 53 Goto Fehler2     
      taskId% = Shell(prog, 1)
      Exit Sub         
   End If
....

Du springst beim Fehler immer wieder vor die Stelle die den Fehler verursacht hat und somit tritt der Fehler ja wieder auf, usw.


Axel
 
Titel: Re: Starten externer Java Application
Beitrag von: Pyewacket am 29.03.07 - 13:48:35
Ich würde das anders machen.
Wenn Office auf dem Rechner installiert ist dann sind die Dateiendungen mit den Office-Komponenten assoziiert. Jetzt müsste man 'nur' noch diese Verknüpfung in der Registry suchen und dort steht dann wo das Programm hinterlegt ist.
Titel: Re: Starten externer Java Application
Beitrag von: it898ur am 29.03.07 - 15:01:44
Oder noch einfacher:

taskid = Shell("cmd.exe /c start " + Dateiname , 0)   

wobei Dateiname = LW:/Pfad/Dateiname.Endung

Windows besorgt den Rest.

Gruß

André