Toon posts:

[java] bestand openen met...

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een bestand in java (bijv liedje.mp3) en die wil ik graag openen met de default programma in windows (bijv winamp). Hoe krijg ik dit voor elkaar?

Ik bedoel dus niet:
code:
1
Runtime.exec("winamp.exe liedje.mp3");


Want dan moet ik van te voren handmatig instellen dat winamp het liedje opent. En dit moet juist afhankelijk van wat er in het os is ingesteld gebeuren.

  • André
  • Registratie: Maart 2002
  • Laatst online: 28-04 11:43

André

Analytics dude

Met onderstaand bestand kun je het ook doen, die zoekt automatisch het gekoppelde programma bij een bestand:

http://www.nobellaan.nl/got/opener.exe

:)

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Er is een windows commando voor die dat doet.. Ik zal eens kijken of het kan vinden.

[edit]
Zoeken op Sun

Volgens mij moet je het daar wel vinden.. Was iets met start of cmd ofzo.

[ Voor 196% gewijzigd door Alarmnummer op 27-04-2005 08:01 ]


  • Apie!
  • Registratie: Januari 2000
  • Laatst online: 09-03 19:55

Apie!

Newer, better & confusinger

kan dat niet gewoon met
code:
1
Runtime.exec("start liedje.mp3");

:?

My lungs taste the air of Time
Blown past falling sands


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Apie! schreef op woensdag 27 april 2005 @ 08:02:
kan dat niet gewoon met
code:
1
Runtime.exec("start liedje.mp3");

:?
Dat zou heel goed kunnen :) Het is alleen al zo lang geleden, dat ik het niet meer zo 1 2 3 weet.

  • Apie!
  • Registratie: Januari 2000
  • Laatst online: 09-03 19:55

Apie!

Newer, better & confusinger

Nou voor de luie lezers onder ons heb ik 't maar even op een NT4 en XP bak geprobeerd vanaf de commandline "start bestandsnaam.foo" wordt uitgevoerd door het default programma voor de extentie foo op dat systeem.

Edit: overigens kan dit ook:

Java:
1
Runtime.exec("cmd /c liedje.mp3");

maar dan verschijnt er wel even een dosbox en ik kanme niet voorstellen dat je dat wilt :)

[ Voor 33% gewijzigd door Apie! op 27-04-2005 08:33 ]

My lungs taste the air of Time
Blown past falling sands


  • gilgames
  • Registratie: April 2004
  • Laatst online: 06-11-2023
Daar is zelfs een speciaal project voor bij Sun: JDIC

Met de AssociationService kun je dan van een extensie/mime-type/url opvragen welke commando het systeem zou gebruiken om het te openen.

vb.
Java:
1
2
3
4
String command = new AssociationService()
  .getFileExtensionAssociation("mp3")
  .getActionByVerb("open")
  .getCommand();


Op deze manier werkt je code ook met op andere platforms als je dat zou willen.

Andere leuke features zijn integratie van de webbrowser als AWT component, trayicons en de default mailer gebruiken om mailtjes te versturen

  • Apie!
  • Registratie: Januari 2000
  • Laatst online: 09-03 19:55

Apie!

Newer, better & confusinger

woei, weer wat geleerd :)

My lungs taste the air of Time
Blown past falling sands


Verwijderd

Topicstarter
wow, tnx ppl. De Runtime.exec("cmd /c liedje.mp3"); werkt idd ook, maar in hoeverre hij dan platform onafhankelijk blijft...?

Ik zal es kijken naar die AssociationService, klinkt als een handig object. Tnx :)

  • frice
  • Registratie: Januari 2001
  • Laatst online: 01-04 17:55
Je kunt hiervoor in Windows rundll32 gebruiken, net als cmd dus maar zonder dos-box. Maar inderdaad niet OS onafhankelijk. Dat JDIC is wel interessant. Benieuwd of het ook goed werkt (edit: jammer dat het weer native libraries in de jar nodig heeft...ik blijf nog even bij de ouderwetse manier).


Java:
1
2
3
4
5
   String cmd = "rundll32 url.dll,FileProtocolHandler ";
   if( filename.toLowerCase().indexOf("http:") != 0 ) {
         cmd += "file://";
   }
   Runtime.getRuntime().exec( cmd + filename );


Nog iemand die weet of er iets dergelijks voor Linux of Mac is?

[ Voor 113% gewijzigd door frice op 27-04-2005 13:36 ]


  • gilgames
  • Registratie: April 2004
  • Laatst online: 06-11-2023
Op dit moment wordt JDIC voor Windows, Linux en Solaris uitgebracht. Voor een paar onderdelen is er al wel Mac support maar daar heb ik zelf nog niet mee getest.

Het gebruik van native code met java schrikt mij ook altijd af maar dit is nou net zo'n project waar het behoorlijk verstandig wordt gebruikt.

  • PhoneTech
  • Registratie: Mei 2000
  • Laatst online: 20:58
Ik zit met precies het zeflde probleem. Ik ben een cross platform applicatie aan het schrijven waar ook met documenten gewerkt moet kunnen worden. Het binnenhalen en versturen van documenten is geen enkel probleem en werkt onder alle test systemen.

Alleen weet ik nog niet hoe ik het openen van bestanden moet regelen. Opzich kan ik wel de JDIC components gebruiken, maar ik probeer zo min mogelijk gebruik van 3d party libraries te maken. (hoewel JDIC LGPL is).

Heeft iemand ervaring met dat
code:
1
Runtime.exec("start bestand.extensie");

op meerdere platformen?
Pagina: 1