Seite 1 von 2

Probleme ProjectX

Verfasst: Mi 05 Okt 2005, 12:43
von watercooker
Hi,
ich weis leider nicht mehr weiter. Nach dem kompilieren von ProjectX wird die ProjectX.rar erstellt. Wenn ich anschliessend diese Datei mit einem Doppelklick starten will passiert nichts.

Was habe ich vergessen oder mache ?

Verfasst: Mi 05 Okt 2005, 12:49
von z3r0
Ist die Dateiendung *.jar mit javaw.exe verknüpft?

Sarte die erstellte ProjectX.jar mal aus der MS-Dos-Eingabeaufforderung mit "java -jar ProjectX.jar". Gibt es da Fehlermeldungen?

Verfasst: Mi 05 Okt 2005, 13:53
von Regloh
manche handysoftware verknüpft *.jar mit dem "aufdemhandyinstaller".
rechtsklick auf projectx.jar - öffnen mit - programm auswählen - javaw.exe (haken bei dateityp immer ...) fertig
Regloh

Verfasst: Mi 05 Okt 2005, 14:09
von jmittelst
Du hast eine PN, schaue da bitte mal rein.
cu
Jens

Verfasst: Do 06 Okt 2005, 12:02
von watercooker
Ich habe zwischen zeitlich versucht die .jar mit javaw.exe zu starten, funktioniert auch nicht. Ich erhalte den Hinweis:
Code:
Could not find the main class. Program will exist


Watercooker

Verfasst: Do 06 Okt 2005, 12:41
von KeXXeN
Mpglicherweise hat beim kompilieren etwas nicht hingehauen.

Kompiliere das ganze nochmal neu und achte auf etwaige Fehlermeldungen.

Starte es auch mal wie von z3r0 beschrieben, mit

java -jar ProjectX.jar

Verfasst: Do 06 Okt 2005, 14:03
von z3r0
Betrifft allgemein Java-Programme und die Fehlermeldung "Could not find the main Class" und hat nicht unbedingt was mit XMG zu tun. Wenn jemand möchte, dann kann man das im WiKi an eine andere Stelle auslagern.

http://wiki.tuxbox.org/XMediaGrabber#Do ... stallation

Verfasst: Do 06 Okt 2005, 15:37
von DrRamoray
Sollte nicht dieser Reg-Schlüssel für das korrekte Aufrufen der JAR-Files zuständig sein?
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\jarfile]
@="Executable Jar File"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\jarfile\shell\open\command]
@="\"C:\\Programme\\Java\\jre1.5.0_05\\bin\\javaw.exe\" -jar \"%1\" %*"

Verfasst: Do 06 Okt 2005, 15:54
von DrRamoray
Da gibt's noch nen 2. Schlüssel, der gesetzt sein muss, damit z.B. bei WinRAR *.jar wieder deregistriert wird.
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.jar]
@="jarfile"
Könnt man ja mal ein kleines Script basteln.

Verfasst: Do 06 Okt 2005, 18:07
von DrRamoray
Script gebastelt bzw. mein altes px_compile-Script angepasst ;)

Hier ist der Link zu dem ursprünglichen Thread von dem Script:
http://www.jackthegrabber.de/viewtopic. ... &start=116

Neu hinzugekommen ist jetzt zum Schluß ein Abfrage, ob man *.jar korrekt registrieren lassen will.
Dabei werden meine beiden geposteten Reg-Schlüssel und der von Zero geschrieben.

Falls gewünscht kann ich auch den Jar-Registrierungsteil in ein extra Script auslagern und eine eigene EXE nur dafür kompilieren.

Probleme, Bugs oder Wünsche einfach melden :)

Download hier:
http://people.freenet.de/schuftpinky/px_compile_06.rar

Script hier:

Code: Alles auswählen

Break On

;Variablen
$px = $EXEPath      				                              ;Pfad zum PX-/Script-Verzeichnis
$build = $px + "\build\"	 					      ;Build-Verzeichnis im PX-Ordner
$jar = $px + "\ProjectX.jar"      					      ;Pfad zur ProjectX.jar
$proA = %ALLUSERSPROFILE% + "\Startmenü\Programme\ProjectX.lnk"	              ;Verknüfung im Programmm-Menü (Admins)
$proB = %USERPROFILE% + "\Startmenü\Programme\ProjectX.lnk"                   ;Verknüfung im Programmm-Menü (Benutzter)
$quick = %APPDATA% + "\Microsoft\Internet Explorer\Quick Launch\ProjectX.lnk" ;Verknüpfung Quicklaunch					
$desk = %UserProfile% + "\Desktop\ProjectX.lnk"        	                      ;Desktopverknüpfung
$lnk = $px + "\ProjectX.lnk"                                                  ;temporäre Verknüfpung
$lib = $px + "\lib"                                                           ;Pfad zum Lib-Verzeichnis
$comnet13 = $lib + "\commons-net-1.3.0.jar"

;X-Version überprüfen
If Exist ($lib) = 0
    $=MessageBox("Project X 0.82.0.xx oder höher ist nicht vorhanden!", "X-Version überprüfen", 16)
    Exit
EndIf

;commens-net-Version überprüfen
If Exist ($comnet13) = 0
    $=MessageBox("commens-net-1.3.0.jar ist nicht vorhanden! Bitte aktuellen Patch laden.", "commens-net-Version überprüfen", 16)
    Exit
EndIf  

;Pfad zum Java DK auslesen
$jdk4 = ReadValue("HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\1.4", "JavaHome")
$jdk5 = ReadValue("HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\1.5", "JavaHome")

;Pfad zur Java RE auslesen
$jre4 = ReadValue("HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.4", "JavaHome")
$jre5 = ReadValue("HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.5", "JavaHome")

;JAVA-SDK Abfrage
If Exist($jdk4) = 0 AND Exist ($jdk5) = 0
		$=MessageBox("Java DK 1.4.x oder 1.5.x ist nicht installiert", "JDK-Check", 16)
		Exit
EndIf

;Betriebssystemabfrage
If @INWIN = 2
    $=MessageBox("Fossile Betriebssysteme :-) werden derzeit nicht unterstützt", "OS-Check", 16)
    Exit
EndIf 


;Abfrage des Build-Ordners
If Exist ($build) = 1
         Shell %COMSPEC% + " /c RD /S /Q " + $px + "\build"
         MD $build
      Else MD $build   
EndIf

Copy $px + "\resources\*.*" $build + "*.*"   

;Alte ProjectX.jar löschen
Del $jar /c

;ProjectX kompilieren
If Exist ($jdk5) = 1
           CD $px
           Shell $jdk5 + "\bin\javac.exe -O -classpath lib\commons-net-1.3.0.jar -d build @@sources.lst"
           Sleep 2
           CD $px
           Shell $jdk5 + "\bin\jar.exe cfvm ProjectX.jar MANIFEST.MF -C build ."
           Sleep 2
   Else
           CD $px
           Shell $jdk4 + "\javac.exe -O -classpath lib\commons-net-1.3.0.jar -d build @@sources.lst"
           Sleep 2
           CD $px
           Shell $jdk4 + "\bin\jar.exe cfvm ProjectX.jar MANIFEST.MF -C build ."
           Sleep 2
EndIf                   
   
;Icon-Pfad festlegen
If Exist ($jdk5) = 1
         $ico = $jdk5 + "\bin\packager.exe"
       Else $ico = $jdk4 + "\bin\packager.exe"
EndIf

;Verknüpfungen erstellen
;Verknüpfung im PX-Verzeichnis anlegen
;Abfrage, ob User Administratorenrechte hat
If InGroup("\\"+@WKSTA+"\Administratoren") = 1
        If Exist ($proA) = 1
           Move $proA $lnk
        Else AddProgramItem($jar, "ProjectX", $ico, 0, $px + "\",0,0)
           Move $proA $lnk
        EndIf
    Else If Exist ($proB) = 1
            Copy $proB $lnk
         Else AddProgramItem($jar, "ProjectX", $ico, 0, $px + "\",0,0)
            Move $proB $lnk
         EndIf
EndIf 

;Programm-Menü
$Sel1 = MessageBox("Verknüpfung Im Programm-Menü erstellen?", "ProjectX kompilieren", 36)
If $Sel1 = 6
   Copy $lnk $proB
EndIf 

;Schnellstartleiste
$Sel2 = MessageBox("Verknüpfung in der Schnellstartleiste erstellen?", "ProjectX kompilieren", 36)
If $Sel2 = 6
   If Exist ($quick) = 0
            Copy $lnk $quick
   EndIf
EndIf   

;Desktop
$Sel3 = MessageBox("Verknüpfung auf dem Desktop erstellen?", "ProjectX kompilieren", 36)
If $Sel3 = 6
   If Exist ($desk) = 0
            Copy $lnk $desk
   EndIf
EndIf

;Verknüpfung im PX-Verzeichnis löschen
Del $lnk

;erzeugtes Build-Verzeichnis löschen
Shell %COMSPEC% + " /c RD /S /Q " + $px + "\build"          

;Default-Icon für Jar-Files ändern
$awt = MessageBox("Default Jar-Icon in JavaCup-Icon ändern?", "ProjectX kompilieren", 36)
If $awt = 6
  If Exist ($jdk5) = 1
           WriteValue ("HKEY_LOCAL_MACHINE\SOFTWARE\Classes\jarfile\DefaultIcon", "", $jre5 + "\bin\awt.dll,0", "REG_SZ")            
         Else 
           WriteValue ("HKEY_LOCAL_MACHINE\SOFTWARE\Classes\jatfile\DefaultIcon", "", $jre4 + "\bin\awt.dll,0", "REG_SZ")
  EndIf
 Else Exit
EndIf

;Jar-Files korrrekt registrieren
$reg = MessageBox("Jar-Files unter Windows registrieren?", "ProjectX kompilieren", 36)
If $reg = 6
  If Exist ($jre5) = 1
         WriteValue ("HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.jar", "", "jarfile", "REG_SZ")
         WriteValue ('HKEY_LOCAL_MACHINE\SOFTWARE\Classes\jarfile\shell\open\command', '', '"' + $jre5 + '\bin\javaw.exe" -jar ' + '"%1" ' + '%*', 'REG_SZ')            
         WriteValue ('HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Applications\javaw.exe\shell\open\command', '', '"' + $jre5 + '\bin\javaw.exe" -jar ' + '"%1" ' + '%*', 'REG_SZ')            
      Else 
         WriteValue ("HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.jar", "", "jarfile", "REG_SZ")
         WriteValue ("HKEY_LOCAL_MACHINE\SOFTWARE\Classes\jarfile\shell\open\command", "", '"' + $jre4 + '\bin\javaw.exe" -jar ' + '"%1" ' + '%*', 'REG_SZ')
         WriteValue ('HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Applications\javaw.exe\shell\open\command', '', '"' + $jre4 + '\bin\javaw.exe" -jar ' + '"%1" ' + '%*', 'REG_SZ') 
    EndIf
  Else Exit
EndIf

Exit

Verfasst: Do 06 Okt 2005, 19:02
von watercooker
Hi,

ich hab den Fehler gefunden, lag am fehlenden SP2
Vielen Dank für euere Unterstützung.

Watercooker

Verfasst: Do 06 Okt 2005, 19:11
von jmittelst
Daran wird es ursächlich nicht gelegen haben, aber das SP wird wohl einen Registry-Zweig "repariert" haben.

cu
Jens

Verfasst: Di 11 Okt 2005, 16:21
von Sedonion
@DrRamoray
Ich würde mich über ein extra Skript zum registrieren des Javas freuen.

Verfasst: Fr 14 Okt 2005, 13:28
von DrRamoray
Sorry hab's grad erst gelesen

Bitteschön (sollte funktionieren, hab's nicht groß getestet)

http://people.freenet.de/schuftpinky/register_jar.rar

/edit
Funktioniert nur mit NT-Systemen und ab JAVA 1.4

Code: Alles auswählen

Break On

;Pfad zur Java RE auslesen
$jre4 = ReadValue("HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.4", "JavaHome")
$jre5 = ReadValue("HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.5", "JavaHome")

;Betriebssystemabfrage
If @INWIN = 2
    $=MessageBox("Fossile Betriebssysteme :-) werden nicht unterstützt", "OS-Check", 16)
    Exit
EndIf 

;Jar-Files korrrekt registrieren
$reg = MessageBox("Jar-Files unter Windows registrieren?", "Register JAR", 36)
If $reg = 6
  If Exist ($jre5) = 1
         WriteValue ("HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.jar", "", "jarfile", "REG_SZ")
         WriteValue ('HKEY_LOCAL_MACHINE\SOFTWARE\Classes\jarfile\shell\open\command', '', '"' + $jre5 + '\bin\javaw.exe" -jar ' + '"%1" ' + '%*', 'REG_SZ')            
         WriteValue ('HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Applications\javaw.exe\shell\open\command', '', '"' + $jre5 + '\bin\javaw.exe" -jar ' + '"%1" ' + '%*', 'REG_SZ')            
      Else 
         WriteValue ("HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.jar", "", "jarfile", "REG_SZ")
         WriteValue ("HKEY_LOCAL_MACHINE\SOFTWARE\Classes\jarfile\shell\open\command", "", '"' + $jre4 + '\bin\javaw.exe" -jar ' + '"%1" ' + '%*', 'REG_SZ')
         WriteValue ('HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Applications\javaw.exe\shell\open\command', '', '"' + $jre4 + '\bin\javaw.exe" -jar ' + '"%1" ' + '%*', 'REG_SZ') 
    EndIf
  Else Exit
EndIf

Exit

Verfasst: Fr 14 Okt 2005, 13:59
von Sedonion
Danke, ist erstmal gespeichert.

Hatte ein komisches Phänomen:
Habe die Einträge per Hand gemacht, dennoch öffnete sich WinRAR.
Erst als ich per Console die .jar mit "javaw.exe -jar Projectx.jar" öffnete erschien Java im Kontextmenü "Öffnen mit..". Damit nochmal geöffnet mit dem Haken "Immer verknüpfen" und nun gehts.