[Java] Programma gestart als Mac Application Bundle?

Pagina: 1
Acties:

  • FendtVario
  • Registratie: Januari 2002
  • Laatst online: 12-05-2025

FendtVario

The leader drives Vario!

Topicstarter
Op java.net vond ik pas een interessant artikel dat uitlegt hoe een Java programma kunt inpakken in een native OS executable. Een applicatie op Mac OS X bestaat uit een map met daaronder een aantal submappen voor de echte executable en o.a. de resources. Ik heb zo'n applicatie voor Mac OS X gemaakt en hierin mijn Java jar file gezet. Maar nu wil ik kunnen zien of mijn programma als Mac-applicatie is gestart of bijv. commandline direct uit de jar. Omdat ik er niet uit kwam heb ik in de property file (Info.plist) een parameter gezet "MacOsAppBundle" die meegegeven wordt bij het starten. In de main() worden de parameters verwerkt en als MacOsAppBundle gevonden wordt maak ik een system property aan met
Java:
1
System.setProperty("MacOsAppBundle", "true");


Mijn vraag; is er een andere (betere) manier om dit te doen? Bijv. een algemene klasse is nu afhankelijk van code die een property moet zetten in de applicatie. Dit wil ik niet, want wie verplicht je dat altijd te doen.

www.fendt.com | Nikon D7100 | PS5


  • FendtVario
  • Registratie: Januari 2002
  • Laatst online: 12-05-2025

FendtVario

The leader drives Vario!

Topicstarter
Ik heb nog een methode gevonden. Wat ook kan is om niet een parameter mee te geven maar in de Info.plist direct de system property te vullen met deze toevoeging aan de Java key
code:
1
2
3
4
5
6
7
8
9
10
<key>Java</key>
<dict>
    ....

    <key>Properties</key>
    <dict>
        <key>MacOsAppBundle</key>
        <string>true</string>
    </dict>
</dict>


Dit is volgens mij nog steeds niet helemaal de oplossing want er is nog input nodig van buiten af terwijl een applicatie toch zelf zou moeten kunnen zien hoe hij gestart is? Hoe kom ik erachter dat dat mijn applicatie gestart is als Mac applicatie.

www.fendt.com | Nikon D7100 | PS5