tag:blogger.com,1999:blog-4110180.post6499043249063934466..comments2023-06-20T05:31:24.545-07:00Comments on Tapestry Central: Quick and dirty Java application launcherAnonymoushttp://www.blogger.com/profile/04486596490758986709noreply@blogger.comBlogger13125tag:blogger.com,1999:blog-4110180.post-63570010963037112802009-08-10T10:40:06.853-07:002009-08-10T10:40:06.853-07:00Cool...
Under what license do you place this clas...Cool...<br /><br />Under what license do you place this class? BSD? GPLv2? Apache?<br /><br />Thanks,<br /><br />MauriceMauricehttps://www.blogger.com/profile/04984259326082093224noreply@blogger.comtag:blogger.com,1999:blog-4110180.post-50061863472524580492007-08-28T04:36:00.000-07:002007-08-28T04:36:00.000-07:00Or you could use the (windows only) java launcher ...Or you could use the (windows only) java launcher at http://blog.progs.be/?p=15 which also gets rid of the windows console which hangs around and has some other neat tricks (like copying the jars to allow updates, downloading jars, restarting when the program is killed).Unknownhttps://www.blogger.com/profile/06965647377342039197noreply@blogger.comtag:blogger.com,1999:blog-4110180.post-57475629428550042382007-08-26T16:33:00.000-07:002007-08-26T16:33:00.000-07:00Sounds like fun. That's what I'm doing, except th...Sounds like fun. That's what I'm doing, except that I'm retrofitting Tapestry 5 IoC into an existing framework. It often feels like an uphill battle.Anonymoushttps://www.blogger.com/profile/04486596490758986709noreply@blogger.comtag:blogger.com,1999:blog-4110180.post-9482879661935851952007-08-26T16:26:00.000-07:002007-08-26T16:26:00.000-07:00In a proof of concept for a rich client, I used Ta...In a proof of concept for a rich client, I used Tapestry IOC (v5) and it worked quite nicely... particularly distributed contribution (a la Eclipse extension points). The project has just received the go-ahead, so I'm hoping that we'll build a Tapestry-inspired framework for Swing (business forms-focused) development. (Hope to publish/OS the results soon.)Philip Lopezhttps://www.blogger.com/profile/05493108698139721803noreply@blogger.comtag:blogger.com,1999:blog-4110180.post-37546078755321643272007-08-24T14:38:00.000-07:002007-08-24T14:38:00.000-07:00Yep, I'm aware of the manifest tricks, I've used t...Yep, I'm aware of the manifest tricks, I've used them before. They aren't appropriate to what we're trying to do for a number of reasons, including our own custom/secure artifact download system as part of the application launcher.Anonymoushttps://www.blogger.com/profile/04486596490758986709noreply@blogger.comtag:blogger.com,1999:blog-4110180.post-19370219767457384772007-08-24T13:44:00.000-07:002007-08-24T13:44:00.000-07:00Another alternative is to use the Class-Path attri...Another alternative is to use the Class-Path attribute in your main JAR's MANIFEST.MF file. There are a couple of ANT tasks that make it quite easy.<BR/><BR/><manifestclasspath property="jar.classpath" jarfile="${leyton.jar}"><BR/> <classpath refid="manifest.classpath" /><BR/> </manifestclasspath><BR/> <manifest file="${manifest.file}"><BR/> <attribute name="Class-Path" value="${jar.classpath}" /><BR/> <attribute name="Main-Class" value="uk.co.pekim.leyton.Main" /><BR/> <attribute name="SplashScreen-Image" value="uk/co/pekim/leyton/resources/leyton-large.png" /><BR/> </manifest>Unknownhttps://www.blogger.com/profile/14587649719919063447noreply@blogger.comtag:blogger.com,1999:blog-4110180.post-62079786466161632442007-08-24T08:27:00.000-07:002007-08-24T08:27:00.000-07:00speedskater: good catch! Why didn't QA complain ...speedskater: good catch! Why didn't QA complain I wonder?<BR/><BR/>Thanks to all for some of the pointers; many of the more obvious solutions (single JAR, JWS) don't fit our profile for cultural and technical reasons I can't really get into. Futher, this code was designed more for the QA team (the real client code uses an installer).Anonymoushttps://www.blogger.com/profile/04486596490758986709noreply@blogger.comtag:blogger.com,1999:blog-4110180.post-27289427455674902922007-08-24T08:05:00.000-07:002007-08-24T08:05:00.000-07:00I found a small bug, the code after the fail will ...I found a small bug, the code after the fail will never be run.<BR/><BR/> if (arg.equals("--addclasspath")) {<BR/> if (cursor + 1 == args.length) {<BR/> fail("--addclasspath argument was not followed by the name of the directory to add to the classpath.");<BR/><BR/> String dir = args[cursor + 1];<BR/><BR/> add(dir);<BR/><BR/> cursor += 2;<BR/> continue;<BR/> }<BR/> }Sixty4Bithttps://www.blogger.com/profile/17956853950720562062noreply@blogger.comtag:blogger.com,1999:blog-4110180.post-12807435539377433132007-08-24T07:35:00.000-07:002007-08-24T07:35:00.000-07:00Your approach looks really nice.Have you thought a...Your approach looks really nice.<BR/><BR/>Have you thought about using <A HREF="http://one-jar.sourceforge.net/" REL="nofollow">one-jar</A>.<BR/>With it you get a single jar that you can start with java -jar yourapplication.jar. All your depending jars <BR/>are put into this jarfiles.<BR/>I tried it yesterday and it realy makes a good impression. We used the <A HREF="http://one-jar.sourceforge.net/preview/" REL="nofollow">new preview</A> but had to batch it because of a small bug with resourcefiles having a dot within their path.<BR/>We are still having a problem with classloading by javassist and tapestry 4.1 and try to figure out how we can get around it. <BR/>But beside this it really offers an easy and elegant way to deliever standalone applications. For getting started with it there is also an eclipse plugin for generating this kind of jar <A HREF="http://fjep.sourceforge.net/" REL="nofollow">fjep</A>speedskaterhttps://www.blogger.com/profile/13707546251240846323noreply@blogger.comtag:blogger.com,1999:blog-4110180.post-81725363445581423832007-08-23T22:41:00.000-07:002007-08-23T22:41:00.000-07:00I commonly use this convention when I need to incl...I commonly use this convention when I need to include many JARs in the classpath:<BR/><BR/>java -Djava.ext.dirs="path" "Classname" "Parameters..."<BR/><BR/>Maybe this would also help.<BR/><BR/>-NearchosAnonymoushttps://www.blogger.com/profile/02205044501915297745noreply@blogger.comtag:blogger.com,1999:blog-4110180.post-23583219340003481002007-08-23T20:45:00.000-07:002007-08-23T20:45:00.000-07:00Look interesting.In our product PaperCut NG, we us...Look interesting.<BR/><BR/>In our product PaperCut NG, we use the "Java Service Wrapper" for the services. It works very well, and handles JVM crashes gracefully bu restarting the application.<BR/><BR/>For client applications, we use simple shell script for Unix that add all JAR files in the lib dir to the path.<BR/><BR/>On Mac we create a native ".app" package.<BR/><BR/>On windows we use a great little launcher called Janel (http://janel.sourceforge.net/). You just use a copy of their launcher "exe", rename it to "myapp.exe", and create a "myapp.lap" text file in the same directory. This file defines the classes to load JVM options, etc. It works perfectly ... and gives your applications a native feel.... which is essential for commercial applications.<BR/><BR/>PS: PaperCut NG's user interface is also completely developed in Tapestry. It's Tapestry 3.0 and we'd love to move to a newer version ... but we don't have the time right now. It would be a big job!<BR/><BR/>Thanks again Howard.Unknownhttps://www.blogger.com/profile/16510837825382159924noreply@blogger.comtag:blogger.com,1999:blog-4110180.post-20573946268645745162007-08-23T19:37:00.000-07:002007-08-23T19:37:00.000-07:00we use web-start to launch our swing app, so that ...we use web-start to launch our swing app, so that we don't need to maintain any start up scripts, and we can update the client remotely. You may want to consider this solution.<BR/><BR/>btw, I think tapestry-ioc is a pretty good app server. any thoughts on how to integrate it with a swing client?Mandrhttps://www.blogger.com/profile/00231855896169792597noreply@blogger.comtag:blogger.com,1999:blog-4110180.post-92213205610142907192007-08-23T19:15:00.000-07:002007-08-23T19:15:00.000-07:00Sweet, you make it look so obvious and shameful t...Sweet, you make it look so obvious and shameful that it's missing when you put it like that. ;) <BR/><BR/>Sure beats the scripts and definitely beats web start. <BR/><BR/>I'm still fond of wrapper http://wrapper.tanukisoftware.org - for reasons I don't remember anymore and have no desire to re-visit.Jesse Kuhnerthttps://www.blogger.com/profile/01536406944822819349noreply@blogger.com