[Java] .class openen in windows explorer *

Pagina: 1
Acties:

  • woekele
  • Registratie: Juni 2002
  • Niet online
Ik heb in de faq gekeken en de search gebruikt en kon het niet vinden. Op google vond ik alleen dingen waar ik echt niet wijs uit kon worden.

Is het mogelijk door te dubbelklikken op een .class file deze te openen met de virtual machine? Ik heb geprobeerd rechts op de .class klikken en dan openen met en dan java.exe uit j2sdk folder, maar dit gaat fout. Waarschijnlijk omdat het de bedoeling is dat je java.exe aanroept met als argument het bestand dat je wilt openen. Is dit mogelijk?

Ik heb in de system variables overigens CLASSPATH op c:\java staan. Daar zit de .class in (subfolder van c:\java)

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Aarsbuds0r schreef op 04 januari 2004 @ 15:02:
Ik heb in de faq gekeken en de search gebruikt en kon het niet vinden. Op google vond ik alleen dingen waar ik echt niet wijs uit kon worden.
Had je deze sticky dan niet ook even kunnen lezen?

Professionele website nodig?


  • SWfreak
  • Registratie: Juni 2001
  • Niet online
Onder Windows XP:
Deze computer->Extra->Map-opties->Bestandtypen
zoek extensie "class" (of maak anders ff een nieuwe)
Geavanceerd->Nieuw
Actie: verzin een leuke naam
Toepassing: c:\path\to\j2sdk\bin\java %1
Ok
Selecteer de net gemaakte actie als de standaard actie
Ok
Sluiten
Kruisje
:+

[ Voor 10% gewijzigd door SWfreak op 04-01-2004 15:26 ]


  • woekele
  • Registratie: Juni 2002
  • Niet online
Sorry, ik had er [Java] voor het topicnaam moeten zetten.

Freak, als ik c:\path\to\j2sdk\bin\java %1 invul bij toepassing, zegt ie dat die toepassing niet kan vinden. Dus heb ik er "c:\path\to\j2sdk\bin\java.exe" %1 van gemaakt. Dan gaat ie niet zeuren. Maar nu opent ie als ik dubbelklik op een .class ff een DOS raampje, maar die verdwijnt direct weer. Als ik vanuit dos raampje de .class open staat er: Exception in thread "main" java.lang.NoClassDefFoundError: C:\path\code/class

Moet ik trouwens DDE enablen voor de actie?

  • bigben04
  • Registratie: December 2001
  • Laatst online: 07-05 10:38
Aarsbuds0r schreef op 04 januari 2004 @ 16:12:
Als ik vanuit dos raampje de .class open staat er: Exception in thread "main" java.lang.NoClassDefFoundError: C:\path\code/class
Dit komt omdat Windows de volledige bestandsnaam meegeeft (dus 'code.class' ipv 'code') en dat laatste is wat de JVM wil hebben. Ik weet hier alleen geen oplossing voor :+

  • woekele
  • Registratie: Juni 2002
  • Niet online
Misschien is er ergens een wijsgeer die het wel weet? :D

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Hiermee is het een Windows probleempje geworden, dus move naar Windows Operated Systems :)

Professionele website nodig?


  • SWfreak
  • Registratie: Juni 2001
  • Niet online
Aarsbuds0r schreef op 04 januari 2004 @ 16:12:
Sorry, ik had er [Java] voor het topicnaam moeten zetten.

Freak, als ik c:\path\to\j2sdk\bin\java %1 invul bij toepassing, zegt ie dat die toepassing niet kan vinden. Dus heb ik er "c:\path\to\j2sdk\bin\java.exe" %1 van gemaakt. Dan gaat ie niet zeuren. Maar nu opent ie als ik dubbelklik op een .class ff een DOS raampje, maar die verdwijnt direct weer. Als ik vanuit dos raampje de .class open staat er: Exception in thread "main" java.lang.NoClassDefFoundError: C:\path\code/class

Moet ik trouwens DDE enablen voor de actie?
Probeer het anders eens met javaw. DDE hoeft niet aan...

  • woekele
  • Registratie: Juni 2002
  • Niet online
Resultaat van gebruik javaw:

[img]edit[/img]

En oh ja, het bestand waar ik het op probeer heeft wel degelijk een main functie enzo. Het werkt prima als ik het in DOSprompt opstart met behulp van java.exe... Ik zou het alleen vanuit windows explorer willen.

[ Voor 77% gewijzigd door woekele op 12-06-2015 13:28 ]


Verwijderd

Wat dacht je van een html file eromheen bouwen die de classes uit kan lezen. Een programma als Jbuilder maakt deze er automatisch omheen.

  • SWfreak
  • Registratie: Juni 2001
  • Niet online
Verwijderd schreef op 05 januari 2004 @ 19:17:
Wat dacht je van een html file eromheen bouwen die de classes uit kan lezen. Een programma als Jbuilder maakt deze er automatisch omheen.
Het lijkt mij dat dat wel werkt als het om een applet gaat, maar bij een gewone applicatie, zoals hier het geval is, waarschijnlijk niet. Bovendien moet het ook anders kunnen.
Op het internet kwam ik een aantal Windows Script dingen tegen. Op inspiratie daarvan presenteer ik JavaLaunch, wat als het goed is alle problemen moet oplossen.
Stappenplan:
Unzip in directorie naar keuze
Zet als toepassing "c:\path\to\javalaunch.exe" %1
Zet geen quotes om de %1
Bij mij werkt het als een trein :)

  • matthijsln
  • Registratie: Augustus 2002
  • Laatst online: 14-05 19:54
of je kan een .jar bestand maken met de 'jar' tool, met een manifest erin die de main class aangeeft. Bij een standaard installatie van de jre worden .jar bestanden automatisch aan de jvm gekoppeld zodat je op de .jar kan dubbelklikken.

http://java.sun.com/docs/books/tutorial/jar/

  • woekele
  • Registratie: Juni 2002
  • Niet online
Dank voor de hulp. Ik vind het alleen wel een beetje eng zo'n .exe te gebruiken van internet, je weet nooit wat erin zit =)

Ok, ik heb het toch maar geprobeerd en het werkt niet. Als ik nu dubbelklik op file gebeurt er gewoon nix...

[ Voor 33% gewijzigd door woekele op 05-01-2004 21:10 ]


  • SWfreak
  • Registratie: Juni 2001
  • Niet online
Aarsbuds0r schreef op 05 januari 2004 @ 21:03:
Dank voor de hulp. Ik vind het alleen wel een beetje eng zo'n .exe te gebruiken van internet, je weet nooit wat erin zit =)
Had ik ff geen rekening mee gehouden. Sorry bout that. Maar hijs clean hoor. Ik kan de source code ook wel posten evt (is C code).
Ok, ik heb het toch maar geprobeerd en het werkt niet. Als ik nu dubbelklik op file gebeurt er gewoon nix...
Naja zeg, hier werkt het als een tierelier :?
Het enige wat ik nog kan bedenken is dat het aan je code/class files ligt, dus als je dat kan/wil, kun je die misschien posten.
Anders heb ik geen idee meer hoe het op te lossen en hopelijk is er dan iemand anders die wel een werkende oplossing heeft...

  • woekele
  • Registratie: Juni 2002
  • Niet online
hmmm, ik zou graag die code van jou wellus willen zien ja =) Misschien is de plek van jou jvm anders ofzo?

ennuh, ik denk echt niet dat het aan de file ligt, hij runt prima als ik gewoon vanuit dosprompt java aanroep met als argument de .class.

  • SWfreak
  • Registratie: Juni 2001
  • Niet online
Aarsbuds0r schreef op 06 januari 2004 @ 01:25:
hmmm, ik zou graag die code van jou wellus willen zien ja =) Misschien is de plek van jou jvm anders ofzo?

ennuh, ik denk echt niet dat het aan de file ligt, hij runt prima als ik gewoon vanuit dosprompt java aanroep met als argument de .class.
Mijn java directory staat vast op een andere plek, maar de bin directory staat wel in mn DOS path (maw ik hoef geen c:\path\to\java.exe maar alleen java.exe in te typen vanuit een willekeurige directory). Zou het daar aan kunnen liggen?

De code (updated gisteren @ 22.05, iets aangepast dus sinds de eerste versie)
C:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#define APPNAME "JavaLaunch"

int APIENTRY _tWinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPTSTR    lpCmdLine,
                     int       nCmdShow)
{
    char clBuffer[65536];
    char *filePart, *extPart;
    extPart = strrchr(lpCmdLine, '.');
    if( extPart == NULL )
    {
        MessageBox(NULL, "Could not find extension.", APPNAME, 0);
        return 1;
    }
    else
    {
        if( strnicmp(extPart, ".class", 6) != 0 )
        {
            MessageBox(NULL, "Not a Java class.", APPNAME, 0);
            return 1;
        }
        else
        {
            *extPart = '\0';
        }
    }

    filePart = strrchr(lpCmdLine, '\\');

    if( filePart == NULL )
        filePart = lpCmdLine;
    else
    {
        *filePart = '\0';
        filePart += 1;
    }

    sprintf(clBuffer, "java.exe -cp \"%s\" %s", lpCmdLine, filePart);

    STARTUPINFO si = { sizeof(si) };
    si.dwFlags     = STARTF_USESHOWWINDOW;
    si.wShowWindow = SW_SHOW;
    PROCESS_INFORMATION piProcInfo;
    ZeroMemory( &piProcInfo, sizeof(PROCESS_INFORMATION) );

    if( ! CreateProcess( NULL, clBuffer, NULL, NULL, FALSE, 0, NULL, NULL, &si, &piProcInfo ) )
        MessageBox(NULL, "Unable to launch Java class file. Unknown reason.", APPNAME, 0);
    CloseHandle(piProcInfo.hProcess);

    return 0;
}


Edit: Ik vraag me trouwens af of het gezien het feit dat dit topic vooral over de Java VM gaat, misschien toch niet beter tot zijn recht komt in P&W. Het lijkt me dat daar eerder mensen te vinden zijn die die probleem gehad hebben dan hier...?

[ Voor 10% gewijzigd door SWfreak op 06-01-2004 11:53 ]


  • woekele
  • Registratie: Juni 2002
  • Niet online
Ja, bennik met je eens, maar de admin wou het zo. Ik zal eens kijken naar de path zooi.

  • woekele
  • Registratie: Juni 2002
  • Niet online
Ook dat werkte niet... Ik kan wel overal vanuit dos java bla.blaat.Class doen en dan doet ie het.
Pagina: 1