windows - Brug en Java-applikation som standardprogrammet til en bestemt filtype?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har oprettet en teksteditor ved hjælp af Java, og har det pakket i en jarfil ved hjælp af Netbeans.
Nu har jeg lavet en tekstfil med en udvidelse af '.text'.
Jeg er på Windows 7, så bruger den s ejendomsvindue Jeg har ændret standard åbningsprogrammet til min tekst editor s jar-fil.


Nu, når jeg dobbeltklikker på filen med '.text' -udvidelsen, viser Windows en dialogboks, der siger '{filnavn} er ikke et gyldigt win32-program'.


Vær venlig at hjælpe mig ud af det ..


Tak.

Bedste reference


Problemet er, at en JAR-fil er valgt som 'standardprogrammet'. JAR-filer er normalt ikke eksekverbare. Det vil sige, at en JAR-fil er ikke et gyldigt Windows-program. Det betyder ikke noget, om JAR-udvidelsen selv har en standardapplikation tilknyttet den, fordi 'Åben verb 'er ikke brugt rekursivt i andre' åbne verb 'definitioner. [14]


I stedet,



  1. Opret en batch-fil ('.BAT') -fil (eller lille EXE-indpakning), der kalder java (eller javaw efter behov) og brug den eksekverbare wrapper som 'Åbn med' -programmet. (Dette vil have et irriterende mellemkonsolvindue, hvis du bruger en batchfil.) Eller ,

  2. Rediger registreringsdatabasen, så 'Open verb' for forlængelsen starter JAR gennem java (eller javaw.



I sidste ende skal en eller anden form ligner: javaw -jar TheJarFile.jar "\%1\%". (Bemærk at javaw er en eksekverbar, mens TheJarFile.jar er ikke en eksekverbar.) [15]


Se java - Java-programstarteren for at bruge java/javaw. [16]

Andre referencer 1


Start kuglen ved hjælp af Java Web Start. Lanceringsfilen giver mulighed for at opsætte en fil/indholdstype forening. Her er en demo. af de filtjenester, der .. [18]



  ..forpligter brugeren til at associere filtypenavn .zzz (blot en filtype er usandsynligt at binde med eksisterende filforeninger) af indholdstype text/sleepytime. ..



For at gøre det ved kørselstid i en JWS app., Se til IntegrationService introduceret i 1.6.0\_18 +. [19]


JWS er ​​designet til at arbejde på Windows (og OS X &* nix).

Andre referencer 2


Må være fordi .text ikke er en eksekverbar fil.


prøv at bruge dette ..


Runtime.getRuntime().exec("cmd.exe /C file");


Dette åbner din fil med standardprogrammet.


Opdatering: Jeg blev forvirret først, måske jeg har ikke læst dit spørgsmål korrekt. Jeg troede, at din eksekvering .text fil direkte fra en Java-kode ..


Runtime.getRuntime().exec("file.text");//Giver fejl CreateProcess error=193,\% 1 er ikke et gyldigt Win32-program


Så jeg foreslog at åbne den med cmd (som svar).


Men læsning af dit scenario ser det ud til, at Windows ikke kan udføre din krukke selv.


For at gøre din krukke eksekverbar, prøv dette ..


java -jar yourjarfile.jar ....