Java Application Installation is a NIGHTMARE

[quote]Yes, the 15 Meg JRE 1.4.2_05 is multi-language. Can anyone find a smaller one? Are we supposed to tell our customers to hunt for a smaller one when we can’t find it ourselves?
[/quote]
Go to www.java.com and use the web installation. I believe the installation process then gives at least Americans the option of a smaller download (by omitting support for all those locales they have never heard of and couldn’t find on a map :slight_smile: ).

This is just a fact of life. Have you noticed all those downloads of Windows XP SP2 yet?

The core is C++. Extensions can be written in Java.

Windows is asking if you really want to run anything downloaded from the web now. It even (irritatingly) asks every time I run an app located on a share on a local server. Most users don’t care where the application resides, just where their data is.

erikd, thanks, never even noticed “Application; Remove Application” (as you can tell I’ve barely touched WebStart).

blahblahblahh - just stating that someone else doesn’t know what they are talking about (calling them inexperienced) doesn’t make for a strong argument for your position.

As best I can tell your postion is:

  1. Application deployment won’t be an issue when the next version of Java (1.5) is released.
  2. Go with the flow and do things you don’t like just because the rest of the world is doing it (Microsoft and auto update).
  3. Java 3D applications aren’t a problem anymore because Java 3D has been released to open source. (What about other non-standard Java extensions?)

Hmmm… if WebStart is such a great solution why does it require books published just on Webstart? ( http://java.sun.com/developer/Books/javaprogramming/jnlp/ ) How do I deploy a WebStart application to a user that isn’t connected to the Internet? WebStart requires all application resources to be packaged in Jars… well that would require a major rewrite for one of my games. Ouch!

Well… this thread looks like it’s going no where. It’s become an issue of whether or not WebStart is the solution to all of Java’s deployment issues.

[quote]WebStart requires all application resources to be packaged in Jars…
[/quote]
Is there any good reason for a resource to be anywhere else? If they really can’t stay in a jar, they could still be delivered that way and copied to an ordinary file after installation. We have some resources not in jars, but that was a mistake by the developer concerned.

[quote] If you don’t believe Application Installation is a nightmare then you haven’t been an active member of the Java 3D forum for the past three years
[/quote]
I’ve been developing professional Java applications for 8 years now (the smallest one had a budget of US $500K, so they’re not trivial apps by any definition). My first application that used Java3D as a part was shipped in 1998. It has never been a problem in any of the ways defined in the original post or followups. If people are finding it a problem, they don’t know what they are doing (inexperience, incompetence or otherwise), as it is certainly not a fault of the environment.

[quote] Hmmm… if WebStart is such a great solution why does it require books published just on Webstart?
[/quote]
Because publishers see an oppourtunity to make money. That’s it, pure and simple. New technology, flavour-of-the-month stuff, nobody else has a book on it, so let’s get one out there to make some sales. If you applied your logic to book sales in general, then Windows must be hard, or Machintosh or cooking, or any other reason to justify such classics as Foo For Dummies. FWIW, I’ve written or contributed to 10 books now, so I have a reasonable idea of their motivations for starting a book.

For people who want their installers to appear traditional (i.e. not WebStart) there is the JDIC packager https://jdic.dev.java.net/documentation/index.html#packager which takes a webstart application and wraps it up as an MSI, RPM or PKG installation for Windows, Linux or Solaris respectively. Unfortunately it requires the new import mechanism in J2SE5.

[quote]Hmmm… if WebStart is such a great solution why does it require books published just on Webstart?
[/quote]
I don’t see any relation between jws’ competence and a book being available about it. If every technology which a book is written about sucks, then… well… is there any technology left?

Does not work properly. Tried this with JRE1.4.2 because I was having problems with a webstarted app. When I told WebStart to remove it, it only removed it from its list. It did no remove the app from the harddrive. Then after I manually deleted it, I tried to run it again and WebStart complained about not being able to find files. The next thing for me to try is to delete the WebStart cache(which I later discovered).
However, it is not easy to remove a WebStart app properly.

ps. I am an avid Java supporter, I just wish WebStart worked better.

erikd - WebStart doesn’t suck, but it doesn’t appear to be a non-trivial solution. I’ve looked at it (briefly) and it certainly appeared that it would take some effort to package up an application for Webstart (and a book on the subject seems to imply that it’s non-trivial).

Certainly WebStart has some great concepts. My exposure to it so far has been completely negative though. I simply don’t like it. That doesn’t mean that it sucks (just that I don’t wish to use it).

Contrast WebStart to simply copying an EXE file. Night and day difference. With Delphi, or C, etc there is no “installation” just hand the EXE to your customer and that’s it. With WebStart we need to design the application for Webstart, we potentially have “signing” issues for producing the Jars, various versions of WebStart, potentially issues with which version of JRE we specify is needed to run our application (thus potentially triggering a large download for the user), the customer must have a network connection (preferably high speed) and customer confusion (most of them don’t even know WebStart exists).

Those reasons are all FUD, bar one (the offline install, which can be easy but requires enough work at present to be a PITA). You are basically saying “i’ve glanced briefly at something which I certainly don’t fully understand yet and because I noticed that a book existed it confirmed my worst fears that this would be difficutl to use”. That’s not logical, that’s FUD; if you wanted some REAL evidence one way or the other you could simply have looked at the poll results in the thread I quoted - would the overwhelming majority of respondents be webstarting their games if it were really so hard, do you think?

It took me just 2 hrs at most to learn how to deploy using web start, and that’s including the search for docs and reading them (if you read the coke & code tutorial, you’re done in 10 minutes). That doesn’t mean there’s not a lot to know about.
I don’t think web start is perfect. In fact I think there are things which are plain annoying. However, I still firmly believe in the concept and that it’s perfectly usable for deploying games and also other apps.
I also developed a client-server app for work, with a little embedded http server only for jws. The client is installed using web start by pointing the browser to the machine name and clicking the ‘start’ button on the index page (which also has a link to a jre). When there’s an update, only the jar has to be replaced on the server and the clients are automatically updated. I only received very enthousiastic responses from the customers about the ease of it all. Delivering .exe files is no option in that case.

Of course, indie games might be easily deployed via a simple .exe and yes, there’s less hassle involved in there for the user if he doesn’t already have a jre.
But what if the game is big (think >50Mb), popular, and in need of an update? I’d wish it were deployed via webstart and automatically patched.

[quote]WebStart doesn’t suck, but it doesn’t appear to be a non-trivial solution. I’ve looked at it (briefly) and it certainly appeared that it would take some effort to package up an application for Webstart.
[/quote]
It took me under a week to convert my entire V-Script app from regular, standalone to being able to run from webstart (without any prior experiece with it). Admitedly its not a huge commercial app, buts its far from non-trivial.

Converting only really amounts to:

  • Checking resource loading to work from the classpath
  • Making everything packaged up in a jar
  • Signing all the jars
  • Making the actual webstart config file.

The first one is the only one that’ll actually take you any amount of time, and the odds are that you’ll be 90% there anyway, and that you’ll only be changing a small amount of resource loading code. The rest are really quite trivial tasks.

Edit: should notes that thats a week of off-and-on work whenever I had the spare time, not solid hours. Also I see more commercial games are adding some kind of auto update so you get (gasp!) a desireable feature totally free. Even Doom3 has an auto-update built right into the game.

[quote] we potentially have “signing” issues for producing the Jars
[/quote]
If signing is a problem for you, you should probably leave software development altogether! I would not be surprised if unsigned applications, at least for Windows, largely disappear over the next few years. You can also expect customers to start requiring that applications be signed.

You presented an unsubstantiated (and IMHO foolish) opinion as a reference; in that situation I do feel it is relevant to point out that the authors of the opinion probably didn’t know what they were talking about, especially as it is symptomatic of many intermediate C++ programmers who get “sour grapes” when they try to switch to java without re-learning the language, and get bitter when they can’t just carry on doing everything the same way they used to do it in C++.

Other than that, I agree with you - merely slating a source isn’t a substitute for a cohesive line of argument.

[quote][…]
Just to refresh my memory I fired up WebStart on a test machine and tried to run “Military Game App”. The first thing it does (after a small download) is ask the user if they want it integrated with their desktop. Does a naive user even know what this means??? After running it, it’s now “downloaded” on my PC… no option to uninstall it (and no information as to where it’s located).

Now I know a lot of people say hard disk space isn’t an issue, RAM isn’t an issue… “it’s cheap, modern machines have plenty, etc”. Well, I for one, do care about hard drive space, I do care about memory bloat. And I consider it rude to “infect” someone’s machine with your application without giving them a clear and easy way to uninstall and delete it.
[…]
[/quote]
Heh. Browsing on this page also “infected” you pc with some html, some gifs and jpgs. OMG! :o

Well, you have a cache… and if the application is used it puts some stuff there. Your browser does the same, but you won’t complain about that, would you?

The default cache size of my browser was 50mb. Surprisingly jws default cache size is the same.

You can clear the whole cache whenever you want to and you can also uninstall single applications.

Did you read this post?

It is not that untrivial.

Did you read this post?

Yes. But I hadn’t had any problems like that. At least as long as I unistalled apps in the usual way. I managed to screw the cache once… but I deleted stuff in that cache dir manually (something you shouldn’t do).

However, clearing the whole cache from within jws fixed it.

So… I don’t really see a problem here. If you can tell me how to reproduce that flaky behaviour, I’ll listen :slight_smile:

[quote]>So… I don’t really see a problem here. If you can tell me how to reproduce that flaky behaviour, I’ll listen :slight_smile:
[/quote]
If you install a number of JDKs from 1.5 beta x, 1.4.x_y, 1.3.z series in arbitrary order (in particular not in release order), then I suspect the resulting state of WebStart is flaky. Fortunately this problem is only likely to affect developers (especially those that do maintenance), but it is still irritating.

If you install beta software, you’ll most likely encounter several problems. And everyone knows that 1.5’s jws is really b0rked :slight_smile:

Webstart question:

What if I buy this really cool game from ABC Company and it’s deployed via webstart. Now three years later I’ve bought a new PC and ABC Company has gone out of business. How do I play my favorite game on my new PC?

Sales question:

Does Webstart have features to control who has access? Or can it be easily cracked and then everyone in the world can download my application for free?

[quote]Webstart question:

What if I buy this really cool game from ABC Company and it’s deployed via webstart. Now three years later I’ve bought a new PC and ABC Company has gone out of business. How do I play my favorite game on my new PC?

Sales question:

Does Webstart have features to control who has access? Or can it be easily cracked and then everyone in the world can download my application for free?
[/quote]
Now that’s some good questions.

#1 Right now you are pretty much out of luck. Well, jws isn’t perfect and “make permanent” (moving out of cache) and/or an export function are still on my wish list.

#2 No. But something like that doesn’t belong there anyways. In general applications can be cracked pretty easy. And it doesn’t even make a big difference if it’s native or Java. To tell the truth - cracking a simple copy protection scheme is actually less work with native stuff.

The advantage you have here with webstart is that you are allowed to connect to the server you came from (no signing needed). So if your application requires being online anyways, you can make it pretty secure and pretty annoying to crack (distribution gets also more difficult for the crackers).