externen Programmpfad auslesen

Status
Nicht offen für weitere Antworten.

schin

Mitglied
Hallo zusammen,

ich müsste den Installationspfad des Acrobad-Readers auslesen.

ich starte das Programm folgendermaßen:

Code:
Process p =Runtime.getRuntime().exec("E:\\Programme\\Adobe\\Acrobat 6.0\\Reader\\AcroRd32.exe /h /t " +  tempFile.getAbsolutePath() +   " " +  aPrinterName);

ohne den absoluten Pfad bzw. mit cmd AcrRd32.exe funktioniert es leider nicht! (Reader wird nicht geöffnet) :-(

Das Problem ist ja, dass jeder Anwender unterschiedliche Versionen und Installationspfade haben kann und ich somit keinen fixen Pfad angeben kann.

Problemstellung ist folgendermaßen: Ein Applet soll automatisch ein PDF drucken, am besten natürlich im Hintergrund, dabei sollen die Anzahl der Kopien gezählt werden. Die einzige Lösung die ich gefunden habe (ohne einbinden eines Drittanbieters), dass man eben das PDF vom servlet per ByteArrayOutputStream an das Applet weiterreicht. Dieses legt eine temporäre datei an und ruft per Exec den Reader auf.
Ein weiteres Problem ist, dass der Reader nicht automatisch schliesst und dass ich dem Reader nicht die Anzahl der Kopien mitgeben kann. hier werd ich wohl ne Schleife machen d.h. Reader aufrufen, drucken, abschiessen, Reader aufrufen, drucken, ab....

Keine wirklich saubere Lösung aber leider die einzige Möglichkeit wie mir scheint.

Danke für Eure Hilfe!

lg
schin
 
G

Gast

Gast
Hm Applet und externe Programme starten? Ist das mit dem Sandkastenprinzip vereinbar?
 
G

Gast

Gast
Versuchs doch mal mit der java.awt.Desktop api aus java 6. Hab leider selbst nur die 5er installiert, sonst hätte ich das mal selbst probiert.
 

schin

Mitglied
@Gast 1: mit einer Zertifizierung sollte das gehen, konnte das leider noch nicht testen, da meine zertifizierte JAR Datei noch nen Fherl aufweist, ist aber ne andere Geschichte

@Gast 2: Hab ich auch schon versucht, allerdings kann man hier nur auf den Standarddrucker drucken und es erscheint kein Druckdialog.

Hat sonst niemand ne Lösung?
 

schin

Mitglied
OK, habs geschafft. aus der Regedit einen bestimmten Schlüssel suchen und in eine Datei schreiben. aus dieser wieder lesen.
Korrekterweise müsste man vielleicht erst in
HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre ntVersion\Explorer\FileExts\.pdf\OpenWithProgids anchsehen und mit dem gefundenen Wert in
HKEY_CLASSES_ROOT\*gefundenes Preogramm\shell\Open\command den Pfad auslesen.
ich lese allerdings direkt in

HKEY_CLASSES_ROOT\Software\Adobe\Acrobat\Exe

was auch funktioniert. (Adobe Installation vorrausgesetzt)

hier ein Lösungsbeispiel für die Klasse die den Wert liest. (inspiration im Internet gefunden)

Code:
import java.applet.Applet;
import java.io.*;
import java.util.StringTokenizer;
public class RegReader extends Applet {

	private static final long serialVersionUID = 1L;

	public String read(String regPath) {
        // Das Verzeichnis für die temporäre reg-Datei
        //String regFile = System.getProperty("java.io.tmpdir")+"~regpart.reg";
		try {
		File tempFile = File.createTempFile("regpart",".reg");
		String regFile = tempFile.getAbsolutePath();

	        FileInputStream in = null;
	        DataInputStream dis = null;
	        String output = "";
	        int b = 0;
	        
	        try {
	            // Der angegebene Schlüssel wird mit Hilfe der regedit in eine reg-Datei im Temp-Verzeichnis exportiert
	            Process p = Runtime.getRuntime().exec( "regedit /e "+ (char)34 + regFile+ (char)34 + " "+regPath );
	            // warten bis der Export fertig ist
	            //p.waitfor();
	            // Anschließend wird die Datei in einen String eingelesen
	            // Der DataInputStream bekommt seine Daten aus dem FileInputStream
	            in = new FileInputStream( regFile );
	            dis = new DataInputStream(in);
	            // Solange nocht Daten im FileInputStream sind,
	            // wird die Schleife ausgeführt
	            while (in.available()!=0) {
	              b = dis.readByte();
	              if (b>0) {
	                 output += (char) b;
	              }
	            }
	            
	            // Der StringTokenizer sucht den Pfad zu dem Programm aus dem String
	            StringTokenizer tokenizer = new StringTokenizer( output, "\"" );
	            String s = "";
	            while ( tokenizer.hasMoreTokens() )  {
	              s = tokenizer.nextToken();
	                if(s.indexOf("\\\\")>0) {
	                  break;
	                }
	            }
	            // Der hinterste Slash wird aus dem Pfad entfernt, da das Programm sonst nicht startet
	            s = s.substring(0, s.length()-1);
	            // Der Pfad bzw. das Programm wird ausgeführt
	            //Runtime.getRuntime().exec(s);
	            return s;
	        } catch (Exception e) {
	            e.printStackTrace();
	            return "";
	        } finally {
	            try {
	                // Zu guter letzt noch etwas cleanup
	                // die Streams schließen
	                dis.close();
	                in.close();
	                // die reg-Datei löschen
	                //Runtime.getRuntime().exec( "cmd /c del "+regFile );
	                tempFile.delete();
	            } catch (Exception e) {
	            	return "";
	            }
	        }
		}catch (IOException ie){
			return "";
		}
    }
}


gruß
schin
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Muss ich die externen jars mitgeben? Java Basics - Anfänger-Themen 8
B OOP While Schleife läuft Endlos durch externen aufruf Java Basics - Anfänger-Themen 2
Silvascus Inhalt eines externen Textdokuments an einen String übergeben Java Basics - Anfänger-Themen 2
M Input/Output Kommunikation mit externen Geräten Java Basics - Anfänger-Themen 0
M Welche externen Bibliotheken sind in Java sehr zu empfehlen? Java Basics - Anfänger-Themen 4
G Externen Button drücken Java Basics - Anfänger-Themen 9
B JAR mit externen JARs in eclipse erstellen Java Basics - Anfänger-Themen 5
C Mit Java Textfeld einer externen Anwendung auslesen Java Basics - Anfänger-Themen 9
A Problem beim Ausführen einer .jar datei auf externen System Java Basics - Anfänger-Themen 5
F Problem mit externen Grafiken und Eclipse Java Basics - Anfänger-Themen 20
R Drucken mithilfe eines Externen ActionListeners Java Basics - Anfänger-Themen 17
M externen Pfad in Jar verwenden Java Basics - Anfänger-Themen 3
J externen code ausführen Java Basics - Anfänger-Themen 8
T Netbeans: Import von Externen Packet Java Basics - Anfänger-Themen 5
G Externen Prozess starten - entweder stdin oder stderr auslesen Java Basics - Anfänger-Themen 3
Ollek Erstellen einer ausführbaren JAR-Datei mit externen Libaries Java Basics - Anfänger-Themen 9
A Aufruf einer externen schon laufenden Anwendung Java Basics - Anfänger-Themen 3
G JUnit4 mit externen Objecten/Dateien Java Basics - Anfänger-Themen 5
zilti Externen Java-Code laden Java Basics - Anfänger-Themen 3
A Methoden von externen Klassen aufrufen Java Basics - Anfänger-Themen 3
W Start-Probleme mit externen Bibliotheken / JAR-Bildung Java Basics - Anfänger-Themen 2
A Interaktionen mit externen programmen Java Basics - Anfänger-Themen 21
M Programmverhalten in IDE anders als bei externen Programmen Java Basics - Anfänger-Themen 3
P Externen Proceß starten und warten bis beendet? Java Basics - Anfänger-Themen 2
P Problem: Kann keine externen Pakete importieren Java Basics - Anfänger-Themen 11
M Programmpfad auslesen Java Basics - Anfänger-Themen 2
A Buchstaben auslesen lassen vom Scanner Java Basics - Anfänger-Themen 18
richis-fragen JComboBox ist editable und eingegebenen Text auslesen bei focusLost() Java Basics - Anfänger-Themen 1
S Daten aus Import Datei auslesen und sortieren Java Basics - Anfänger-Themen 2
T array auslesen Java Basics - Anfänger-Themen 2
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
N Einzelne Werte aus einem TreeSet auslesen Java Basics - Anfänger-Themen 2
D Eclipse will nicht auslesen Java Basics - Anfänger-Themen 6
E TIF Datei auslesen Java Basics - Anfänger-Themen 2
krgewb Breite und Höhe eines Bildes in base64 auslesen Java Basics - Anfänger-Themen 3
sserio TXT-Datei Auslesen und den Wert jedes Namen ausrechnen etc. Java Basics - Anfänger-Themen 37
J Speichern von zwei Variablen durch Auslesen aus einem Numberfield Java Basics - Anfänger-Themen 2
U Sekunden von LocalTime auslesen, wie möglich? Java Basics - Anfänger-Themen 1
E Outlook ordner auslesen Java Basics - Anfänger-Themen 4
R Eigenschaft über Parameter auslesen und ändern Java Basics - Anfänger-Themen 15
B Bin komplett am verzweifeln :( Verkettete Liste die Objekte hat Attribut auslesen Java Basics - Anfänger-Themen 14
J Datei aus Netzwerk auslesen Java Basics - Anfänger-Themen 9
J Jsonfile auslesen Java Basics - Anfänger-Themen 8
A Eine Textdatei auslesen Java Basics - Anfänger-Themen 16
N Aus einem String die Anzahl der Vokale auslesen Java Basics - Anfänger-Themen 40
H Array rückwärts auslesen funktioniert nicht Java Basics - Anfänger-Themen 3
J Bestimmte parameter aus Jsonfile auslesen Java Basics - Anfänger-Themen 15
AleXusher Mehrdimensionales Array aus txt.file auslesen Java Basics - Anfänger-Themen 4
L Zeichen an bestimmter Stelle auslesen Java Basics - Anfänger-Themen 4
3 Textdatei Zeilenweise auslesen Java Basics - Anfänger-Themen 3
J Json Datei auslesen Java Basics - Anfänger-Themen 4
I Java String einlesen und auslesen Java Basics - Anfänger-Themen 11
S Tastatureingabe auslesen und in Konsole ausgeben Java Basics - Anfänger-Themen 6
S CSV Datei auslesen und anders darstellen Java Basics - Anfänger-Themen 2
G Scanner nutzen und Index auslesen Java Basics - Anfänger-Themen 8
N JTable auslesen Java Basics - Anfänger-Themen 6
N Java CSV Datei auslesen Java Basics - Anfänger-Themen 6
F Webseiten Quelltext auslesen Java Basics - Anfänger-Themen 5
J Datei auslesen (nur bestimmte Stellen) Java Basics - Anfänger-Themen 2
I csv auslesen, mittels List Java Basics - Anfänger-Themen 18
S Letzte Zahl eines Integer auslesen? Java Basics - Anfänger-Themen 3
G If / While Programm (Datei auslesen) Java Basics - Anfänger-Themen 6
S Aus einer .bz2 Datei auslesen Java Basics - Anfänger-Themen 2
K Textdatei auslesen und über Mqtt schicken Java Basics - Anfänger-Themen 4
B Name von Verzeichnis bekommen - Files von einem Ordner auslesen Java Basics - Anfänger-Themen 4
A Daten auslesen/vergleichen Java Basics - Anfänger-Themen 3
D XML von Seite auslesen Jsoup Java Basics - Anfänger-Themen 2
I Druckerauflösung auslesen - mittlerweile möglich? Java Basics - Anfänger-Themen 4
B WSDL auslesen? Java Basics - Anfänger-Themen 8
D Methoden Textdokument erstellen und auslesen. Java Basics - Anfänger-Themen 46
B HTML Code / Seite auslesen und JAVA Objekte erstellen Java Basics - Anfänger-Themen 12
S Datein auslesen und verarbeiten Java Basics - Anfänger-Themen 1
J Geld speichern und wieder auslesen Java Basics - Anfänger-Themen 10
S CSV auslesen UTF-8 Problem Java Basics - Anfänger-Themen 7
D Datei auslesen & Werte in Variable speichern Java Basics - Anfänger-Themen 12
K String buchstaben auslesen Java Basics - Anfänger-Themen 9
S Amazon Produktbeschreibung auslesen und nach Keywords suchen Java Basics - Anfänger-Themen 2
x-tshainge Interface Wie kann ich aus Textfeldern auslesen Java Basics - Anfänger-Themen 6
Z Ersten Buchstaben eines Elements eines String-Arrays auslesen Java Basics - Anfänger-Themen 5
B .txt. Datei auslesen und bestimmten Wert wiedergeben Java Basics - Anfänger-Themen 5
CptK x wert eines Bildes auslesen Java Basics - Anfänger-Themen 1
T Website auslesen Java Basics - Anfänger-Themen 2
T String auslesen bzw. überprüfen Java Basics - Anfänger-Themen 1
L CSV Auslesen Java Basics - Anfänger-Themen 5
B Auslesen von PDF / Bilder Java Basics - Anfänger-Themen 5
das_leon Alle Zeilen einer CSV-Datei auslesen Java Basics - Anfänger-Themen 1
D Mit Java HTML bzw Javascript auslesen Java Basics - Anfänger-Themen 1
F Arrays Sätze speichern und einzelne Worte mit Index Angabe auslesen Java Basics - Anfänger-Themen 4
F Zwischenwerte aus Browser auslesen Java Basics - Anfänger-Themen 19
S Jede Ziffer einer Zahl auslesen, damit rechnen und beim Ergebnis wiederholen ? Java Basics - Anfänger-Themen 20
G Servlet - externe HTML (URL) auslesen Java Basics - Anfänger-Themen 1
T class Datei auslesen Java Java Basics - Anfänger-Themen 5
P Liste auslesen und in Variablen speichern Java Basics - Anfänger-Themen 7
D String erste Zahl mit LKZ auslesen lassen Java Basics - Anfänger-Themen 36
J Hashmap auslesen Java Basics - Anfänger-Themen 7
J Auslesen/speichern und wieder einlesen Java Basics - Anfänger-Themen 7
D String untereinander auslesen lassen Java Basics - Anfänger-Themen 2
M Aus Datei auslesen und untersuchen ob diese Zeile schon vorhanden ist Java Basics - Anfänger-Themen 3
DaCrazyJavaExpert Variablen Zahlen aus Strings auslesen Java Basics - Anfänger-Themen 4
J Informationen aus Webseiten auslesen Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben