Toon posts:

[JAVA] Hoe programma distributen ?

Pagina: 1
Acties:
  • 206 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Sinds kort ben ik dus begonnen met programmeren in Java.
Nu heb ik (in JBuilder 5.0 Personal) een klein chat programma in elkaar gezet (jaah, hoe origineel, kweet)
Nu wilde ik het programma meenemen om op school te draaien. Maar hoe werkt dat ? JBuilder maakt voor alle dialogs etc. een aparte .class file aan. Hoe moet ik het programma nu in zijn geheel distributen ? De professional en enterprise edition schijnen een wizard ervoor te hebben. Bestaan er soms ook (gratis) third party tools die hetzelfde doen ?
Ik heb al geprobeerd met om met jar een .jar bestand te maken, maar ik krijg steeds de fout "Failed to load Main-Class manifest attribute from
D:\Programma's\Java projects\Chat\classes\chat\chat.jar"
Hoe moet ik dit nu oplossen ?

Verwijderd

Tsja, als jar zegt dat ie een maifest filen iet kan vinden, dan moet je er een maken (dat had jij ook nog wel kunnen bedenken :)). Kijk maar es op www.javasoft.com voor specs en docs van manifest files. Je kan je chatprogramma dan starten door gewoon op de jar te klikken. Hou er rekening mee dat de JRE op de computer moet zijn geinstalleerd. Die is te downloaden van javasoft.com. :+

Verwijderd

Topicstarter
Hmm

kheb die Manifest info bekeken en het enige wat ik heb gevonden is dat ik een mainclass moest definiren, wat ik dus heb gedaan.
Maar ik krijg nog steeds vage errors, en bovendien is het steeds weer kopieren van alle class files (en de helft van Ipworks.jar) toch wel een hele bezigheid. Is er geen programmaatje dat dit soort zaken automatiseerd?
Overigens krijg ik nu deze foutmelding
code:
1
2
3
4
5
6
.java -jar test.jar
Exception in thread "main" java.lang.NoClassDefFoundError: chat/mainwnd$1
      at chat.mainwnd.jbInit(mainwnd.java:86)
      at chat.mainwnd.<init>(mainwnd.java:72)
      at chat.chatapp.<init>(chatapp.java:23)
      at chat.chatapp.main(chatapp.java:69)

Nochthans hebbik in de manifest de mainclass juist gedefineerd...
Ik snap er niet veel meer van...
In dat opzicht is C toch wel veel enevoudiger hoor. Even compilen, en voila, een exe die op alle windowsplatformen draait.

Verwijderd

Op Sunday 28 October 2001 17:14 schreef SpHeaRe het volgende:
Hmm
ff interessant doen :)
kheb die Manifest info bekeken en het enige wat ik heb gevonden is dat ik een mainclass moest definiren, wat ik dus heb gedaan.
jar je dat manifest bestand wel mee ??
Maar ik krijg nog steeds vage errors
Wat bedoel je met vage errors ??
, en bovendien is het steeds weer kopieren van alle class files (en de helft van Ipworks.jar) toch wel een hele bezigheid. Is er geen programmaatje dat dit soort zaken automatiseerd?
Luiheid is een van de drie deugden van een programmeur :+
Overigens krijg ik nu deze foutmelding
code:
1
2
3
4
5
6
.java -jar test.jar
Exception in thread "main" java.lang.NoClassDefFoundError: chat/mainwnd$1
      at chat.mainwnd.jbInit(mainwnd.java:86)
      at chat.mainwnd.<init>(mainwnd.java:72)
      at chat.chatapp.<init>(chatapp.java:23)
      at chat.chatapp.main(chatapp.java:69)

Nochthans hebbik in de manifest de mainclass juist gedefineerd...
Ik snap er niet veel meer van...
In dat opzicht is C toch wel veel enevoudiger hoor. Even compilen, en voila, een exe die op alle windowsplatformen draait.
OK het werkt niet... dan moet je het anders doen.Over weeg eens Nullsoft's NSIS , een doodsimpel maarkrachtig installatieprogramma. En nog gratiz ook. Kijk maar op www.winamp.com en dan klikken op developers. *D

Verwijderd

Topicstarter
Ik heb het inmiddels aan het werken gekregen, maar heb nog twee vraagjes:

1) ik heb een map images, die het programma gebruikt. Als ik het programma als een JAR laat executen, worden die images niet getoond. Ik heb de map
- in de jar gezet
- in de map chat\images gezet (waar de classes staan)
- in de huidige directory gezet (dus waar de jar staat)
maar geen van de drie methodes werkt. Waar moet ik die images dan wel zetten ??

2) Kan je een jar in een jar opnemen ? (Ik heb het dus over ipworks.jar) Of moet ik steeds de inhoud van de hele ipworks jar file "plakken" in mijn eigen jar ?

ps NSIS kende ik al, is idd een fijn setuptooltje

  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

de images moet je in je prog laden met Class.getResource
anders werkt het niet:

check ook deze site:

http://www.u.arizona.edu/~bintiyot/howToMakeJarFile.html

Verwijderd

Topicstarter
Op Sunday 28 October 2001 18:54 schreef wasigh het volgende:
de images moet je in je prog laden met Class.getResource
anders werkt het niet:

check ook deze site:

http://www.u.arizona.edu/~bintiyot/howToMakeJarFile.html
Wieeee het werkt !
Heel veel bedankt !! :D

  • The - DDD
  • Registratie: Januari 2000
  • Laatst online: 03-09 16:40
Als je het als executable Jar file hebt, moet je is kijken naar Java webstart.

Is een soort browser plug-in. Kun je met een bepaald MIME type heel eenvoudig een programma van een web pagina installeren. tevens is het onderhoud heel simpel, wijzigt er iets aan de JAR file, dan wordt ie automatisch opnieuw gedownload.

http://java.sun.com/products/javawebstart/

Verwijderd

Topicstarter
Dat ziet er idd errug interessant uit. :)

  • tomato
  • Registratie: November 1999
  • Niet online
Webstart is idd erg leuk, zouden meer mensen van moeten horen :)

Verwijderd

Ja...er zijn third party tools.

Zo zou je eens installanywhere 4.5 Now kunnen proberen. Dat is gratis down te loaden. het is van zerog -> http://www.zerog.com

Wat je ook nog zou kunnen proberen is JET, daar ben ik zelf iets minder over te spreken, maar toch -> http://www.excelsior-usa.com

Succes

  • traviandus
  • Registratie: Februari 2001
  • Laatst online: 25-03-2025

traviandus

vague

Misschien ook wel handig, een paar tools om de JAR zo klein mogelijk te maken door alleen de classes in te voegen die gebruikt worden: ZipLock

  • The - DDD
  • Registratie: Januari 2000
  • Laatst online: 03-09 16:40
Voordeel van Web-Start is dat ie automatisch checked of er een nieuwe versie beschikbaar is, mits je het online stekkertje in de interface gesloten hebt. Anders doet ie dat niet geloof ik.
Pagina: 1