There are a few tiny things that annoy me about Java, and it's basicly desktop integretion.

For instance, any Java file, .class, .java, .jar, .war etc. has no association with my windows. Windows doesn't recognize these files, and they have this silly wordpad document icon, or winrar icon at my home pc.

And those jar files, you dont have a clue what's in them. Is it a library? An gui application? A console application? In my opinion Sun needs new standardized file format for GUI Application, or Console Application, or Java Library - AND THEY SHOULD HAVE ICONS!!

Seriously, people like to be able to recognize things by associating the icon of them with something, you shouldn't have to have a folder of 100 jar files, and don't know what type of jar files they are! I had to manually associate jar files to a java icon, something a normal user couldn't do.

Oh well, just little things like that, something trivial, but still Sun hasn't figured it out.

There are a few tiny things that annoy me about Java, and it's basicly desktop integretion.

For instance, any Java file, .class, .java, .jar, .war etc. has no association with my windows. Windows doesn't recognize these files, and they have this silly wordpad document icon, or winrar icon at my home pc.

And those jar files, you dont have a clue what's in them. Is it a library? An gui application? A console application? In my opinion Sun needs new standardized file format for GUI Application, or Console Application, or Java Library - AND THEY SHOULD HAVE ICONS!!

Seriously, people like to be able to recognize things by associating the icon of them with something, you shouldn't have to have a folder of 100 jar files, and don't know what type of jar files they are! I had to manually associate jar files to a java icon, something a normal user couldn't do.

Oh well, just little things like that, something trivial, but still Sun hasn't figured it out.

Let's face it, if a user can't manually associate icons to apps, then they shouldn't be mucking around with anything in the file system to begin with. I understand it's an annoyance in your particular case but for the average user who will running a game developed in Java, they, more than likely, will never delve into the file structure anyway. The only icons that 99% of home computer users care about is what is in their start tree and on their desktop.

Last month I spent about 1.5 hours with someone who thought they knew how to use their computer. They knew how to run apps, email and save stuff, but they got stuck when it came to figuring out explorer and their own file system. I expect they will never run a java app in their lifetime.

Today I downloaded 2 files, one was a Windows Setup Executable program (.exe) with a nice little icon showing a cd and box....pretty clear that it's a setup program. And i also downloaded a jar file, it had a wordpad icon, not telling me really what kind of an "application" it was, so I double-clicked on it and it started a setup process, very much like the previous one.

It also wasn't until recently jar files were associated in my windows so they would *run* when I double-clicked on them. I used to double-click on them and get this "select application to run with..." popup window. Appearently installing java doesn't do that automatically. So, for me, it's no problem browsing to c:\program files\java\jre1.5.xxx\bin\.... and so on, but for normal users? I don't think so. So, running a os-independent application seems to be impossible for the mainstream of computer users.

I don't know, it seems strange to be annoyed by things like this. But it's always the little things that matter the most.

Also, I don't really understand why programs like Eclipse, NetBeans, Azerues (bit torrent client) and other GUI java applications need an .EXE file to run? I find it strange since Java was supposed to be OS-independent?

Also, the setup process for Azerues was no different than installing a regular windows application, the program was nicely integrated with your desktop. You even get the azereus icon in the system tray when you minimize it. But with Eclipse, you download this file, extract it, and there you go, install complete. I really think Java written gui applications needs some standard way of installing themselves into the users desktop os.

Well, there's always Java Webstart if you want a "standard" way of installing apps.

Beyond that there's Install Anywhere, which will give you an actual installer-like interface.

Ok, realizing that mostly you probably just wanted to rant, and that's cool, I'm going to go out on a limb here a bit, but (no offense) it seems that you haven't done a lot research here. I mean, this is the way it was in the old days (and even somewhat still today), that some programs on Windows like to install their stuff using and self-extracting .ZIP, some use a installer, some install on-demand through your browser. The impression that you have that there is a "standard" way of doing things now, is a bit untrue. Sure, many, many of the apps you install probably use the installer method, but that's only because the industry has decided that for most things, that's the way to go. There's no reason that anyone has to do it that way.

Furthermore, there's no reason that Eclipse or Azureus "need" an .exe, again that was just a design decision for those apps, and they seem to work.

Quote

So, running a os-independent application seems to be impossible for the mainstream of computer users.

This is where Java Webstart comes in. It's pretty painless from the user's standpoint, if the .jnlp files is configured correctly. Sure, it's got it's issues, but so does everything else - it's one of the *many* challenges cross-platform development faces.

Anyhow - feel free to chew me out if you like. If it's any consolation, these are issues that we've all run into at one time or another, so we feel your pain.

Today I downloaded 2 files, one was a Windows Setup Executable program (.exe) with a nice little icon showing a cd and box....pretty clear that it's a setup program. And i also downloaded a jar file, it had a wordpad icon, not telling me really what kind of an "application" it was, so I double-clicked on it and it started a setup process, very much like the previous one.

It also wasn't until recently jar files were associated in my windows so they would *run* when I double-clicked on them. I used to double-click on them and get this "select application to run with..." popup window. Appearently installing java doesn't do that automatically. So, for me, it's no problem browsing to c:\program files\java\jre1.5.xxx\bin\.... and so on, but for normal users? I don't think so. So, running a os-independent application seems to be impossible for the mainstream of computer users.

I don't know, it seems strange to be annoyed by things like this. But it's always the little things that matter the most.

Also, I don't really understand why programs like Eclipse, NetBeans, Azerues (bit torrent client) and other GUI java applications need an .EXE file to run? I find it strange since Java was supposed to be OS-independent?

Also, the setup process for Azerues was no different than installing a regular windows application, the program was nicely integrated with your desktop. You even get the azereus icon in the system tray when you minimize it. But with Eclipse, you download this file, extract it, and there you go, install complete. I really think Java written gui applications needs some standard way of installing themselves into the users desktop os.

Well, there's always Java Webstart if you want a "standard" way of installing apps.

Beyond that there's Install Anywhere, which will give you an actual installer-like interface.

This is where Java Webstart comes in. It's pretty painless from the user's standpoint, if the .jnlp files is configured correctly. Sure, it's got it's issues, but so does everything else - it's one of the *many* challenges cross-platform development faces.

Thanks for your comments.

The thing with Java Webstart is that it's intended for starting applications from the web. I don't want to go to a website to start a desktop application, just doesnt makes sense. Would you always go to eclipse.org to run your Eclipse IDE?Sure you can run it again from the webstart cache, but, I only found out about that today! And it was even bugged, I couldn't run it, I had to delete some application from it manually that was preventing webstart cache manager to run.

I don't know. I sent a friend of mine this game over msn, a jar file, and he simply didn't know what to do with it. It took me a while to help him just to run it! He had all these problems, it had the wrong icon, the jar file wasn't associated with the jre, and then he couldn't find where java was installed etc.

Simply put, I shouldn't have to do *research* just to run simple gui applications. After installing Java I'd expect things to run smoothly and friendly.

You can run a .jnlp file from your desktop (doesn't have to be from the web)...but I agree, it's not as 'clean' executing Java without an .exe file to standardize the application icon and launch parameters.

There are some applications out there (can't remember what though), that will create an exe to spawn your java app. You can also use things like NSIS to create an installer and a little .exe to launch.

normally jar files are associated with java, so when you click on a jar-file it starts ok. I never had a problem with this. Maybe it's simply your java version, that's buggy? Or maybe also winblows is configured wrongly (because M$ hates Java so much )

The thing with Java Webstart is that it's intended for starting applications from the web. I don't want to go to a website to start a desktop application, just doesnt makes sense..

That's why Web Start makes icons in your start menu or desktop for the apps you run. So you can run them like any other app.

On another note:

Maybe Sun should add a standard property to the JAR manifest to identify a image file in the jar to be used as the JAR icon. Then the Windows install of Java could install a shell extension to show that image for the jar file. I assume similar extensions could be made for other platforms.

Today I downloaded 2 files, one was a Windows Setup Executable program (.exe) with a nice little icon showing a cd and box....pretty clear that it's a setup program. And i also downloaded a jar file, it had a wordpad icon, not telling me really what kind of an "application" it was, so I double-clicked on it and it started a setup process, very much like the previous one.

It also wasn't until recently jar files were associated in my windows so they would *run* when I double-clicked on them. I used to double-click on them and get this "select application to run with..." popup window. Appearently installing java doesn't do that automatically. So, for me, it's no problem browsing to c:\program files\java\jre1.5.xxx\bin\.... and so on, but for normal users? I don't think so. So, running a os-independent application seems to be impossible for the mainstream of computer users.

I don't know, it seems strange to be annoyed by things like this. But it's always the little things that matter the most.

Also, I don't really understand why programs like Eclipse, NetBeans, Azerues (bit torrent client) and other GUI java applications need an .EXE file to run? I find it strange since Java was supposed to be OS-independent?

Also, the setup process for Azerues was no different than installing a regular windows application, the program was nicely integrated with your desktop. You even get the azereus icon in the system tray when you minimize it. But with Eclipse, you download this file, extract it, and there you go, install complete. I really think Java written gui applications needs some standard way of installing themselves into the users desktop os.

Java Web Start

-Chris

Nice propaganda, but Webstart is far from a catch-all solution for all problems, and comes with a whole bunch of its own:

1. Many computers don't recognise the .jnlp file extension properly, even when a recent JRE has been installed. Web browsers (particularly firefox and safari it seems) do funny things - like saving it to the desktop and doing nothing else, providing an "open or save?" prompt, or sometimes even just displaying it as xml. Even when MIME types are correct.

2. Users freak out when they see the big scary permissions dialog, and often refuse to go further.

3. The (frankly stupid) "Do you want a desktop shortcut" blocking dialog that pops *under* with JRE 1.4 which makes it look like a game has crashed.

4. General user confusion of how to re-run an application again - no-one knows about re-launching from the webstart app viewer, they always go and find the URL again. This also has the side effect of not knowing they can run when not connected to the internet.

5. Total inability to get at the console output if a game should crash (was hidden deep in the options in 1.4, seems to have vanished in 1.5).

6. Far too complicated webstart error dialog (exception, wrapped exception, etc. etc.) which means that users never actually tell you the right bit of information unless you hand-hold them though it all.

This isn't just idle speculation - these are the same old problems which I keep hitting when people try out my games. With Growth Spurt I hit all of these except 3 (probably because no-one was running 1.4). Unfortunately there's very little I can do about them. These aren't computer illiterate or stupid people either - they're mostly programmers, but webstart is just too alien and just scares people away.

Sun should really try to adopt to proven methods for running and installing Java based applications, and not invent new methods that only partially solve the problems.

I don't know, this is all very strange to me. For some reason Sun doesnt want to make Java more desktop friendlier, maybe they're trying to keep Java the same for all platforms. But it's still strange that they're able to release a new type of Java (J2ME), so platform-independence isn't really a *reality*.

btw. swpalmer, my Sun folder in the Programs startmenu is empty for some reason. I don't remember ever deleting the shortcuts in there

Why should I need java webstart to launch my windows applications? I don't need any "windows exe-start" application to start my other windows applications I'll have to remember to tell my 55 yearold dad to read those links you posted, he barely manages to check his email and browse websites. He doesn't even know what Java is!

Yes, there are ways to do things in Java, but I shouldn't *have to* do them simply to run a application. Don't get me wrong, things have improved a lot, most java applications can be run with webstart or simply by clicking a jar file, in ideal conditions. Although, sometimes I encounter jar files where I need to extract the contents of it, and read a readme file to know what parameters to use to run it.

What is Sun really waiting for? Throughout history too many have made the mistake of inventing a very good technology, but still, lose to a lesser technology just because they didn't implement a proper *ease-of-usability* solution. Look at Windows, it sucks, but still people use it, despite the viruses, worms, trojans etc. and even while there are better alternatives.

Sun needs to rethink the whole process of "a software developer makes an application and a user runs it".

This is basic Human Computer Interaction I learned in my first years as a student.

Users could care less about the language an application is written in. What they care about is comformity and getting their task done. With regard to games the task is to play the game and to get there they have ot install the game. If this install procedure requries the user to do something different, the user will be interrupted in his task and be annoyed because he has to face a new problem he did not exspect.

With causal gaming its important to get the game running as fast as possible because the user does not have much incentive to keep trying to get the game working. So acting out of the ordinary just because its "java" will lead nowhere unless we are in a situation where java becomes the norm, rather than the exception.

So in conclusion Sun should make a proper way to execute java programs under windows, just as they have under OS X. (or is it OS X that have a proper way to execute java?).

WORA was marketing hype. The reality is considerably more fiddly. It would have been helpful if Sun shipped other tools in the JDK for shipping Java based products (other than Webstart, for example). It's a bit of a pain having to fire up VC++ to create a .exe and NSIS to create the installer for Windows, and there's actually a similar amount of hackery for OSX if you want to create a .app file. I should probably suggest an RFE to include tools that do this stuff in some future JDK release, or at least, as a separate tool download or plugin for the various IDEs.

Eclispe is a bad example, they have written thier own gui library to replace swing that interface to C++ code if I recall. Thats not java's fault, that was a developer decision within the eclipse community.

Having said that, if you want opengl 3D graphics, or OpenAL sound, or joystick support, you also need native libraries.

Eclispe is a bad example, they have written thier own gui library to replace swing that interface to C++ code if I recall. Thats not java's fault, that was a developer decision within the eclipse community.

Azereus seems to do the same, just go to the download page, and you'll be able to select from like 10 different versions of Azereus.I also checked out Poseidon (uml editor) and it also does the same, different installer for each OS.

It's a bit of a pain having to fire up VC++ to create a .exe and NSIS to create the installer for Windows, and there's actually a similar amount of hackery for OSX if you want to create a .app file.

Have to disagree that the Mac solution is "similar" in any way. There is no compiling of anything, no making of any installer. It comes down to creating a specific directory structure and providing an XML file... much like a JNLP file.

"Java" "Application Bundles" are really not significantly different than any other Mac Application Bundle. The whole concept of the Application Bundle is the critical bit the the other OS's lack.

The user experience on the Mac for launching or installing a native app or a Java app is the same on the Mac. i.e. Drag the app to where I want it. Double click it to start.

Though all the whining about windows seems a bit dumb to me too... MOST Windows applications have an installer. Making one for a Java application is no different. What people are really complaining about is lazy developer practices where platform-specific installers are not created to match the expected user experience for a particular OS.

Web Start is a cross-platform generalization, and will ALWAYS feel like it, because you simply don't install software that way for "native" applications. The only real things to improve are how the question is asked about the shortcuts. It should probably just say "Do you want to install this application, or run it from the Web?" If the user choose to "install" then they should get the same sort of choices that they do with other installers for the platform they are running on, i.e. choose a folder to put the app in, default for Windows being "Program Files/blah" (where the details of "blah" come from the JNLP), Web Start will then simply put a REFERENCE in it's cache to the local install folder for that app, and not HIDE all of the installed applications like it currently does, unless the user chooses "run from web" in which case the application is put into the private cache (so the next "run from the web" can go faster, or the app can be launched from the cache viewer (which no normal user will EVER see), and no shortcuts are created.

Eclispe is a bad example, they have written thier own gui library to replace swing that interface to C++ code if I recall. Thats not java's fault, that was a developer decision within the eclipse community.

Azereus seems to do the same, just go to the download page, and you'll be able to select from like 10 different versions of Azereus.I also checked out Poseidon (uml editor) and it also does the same, different installer for each OS.

probably simply, because users are used to download a different version for each OS. Else they think it's wrong or something. But actually it is not difficult to create all those different launchers. If you write a simple shell-script for example, you'll only have to change the ":" in a linux-shell script to a ";" to make it run under windows.And if you want to attach an image, hide the shell-script somewhere and create a link

If all you want to do is make your java app look like a windows application, why not simply use one of the existing exe wrapper tools (like launch4j). That way you get a nice icon, an exe, etc etc.If you're application consists of more than a single exe, then the 'correct' way on windows is to make an installer, which is no different than if you were writing a native appication. There are already plenty of free and commercial tools available to do this, so I personally don't see why Sun should invest time and money in this.

It's a bit of a pain having to fire up VC++ to create a .exe and NSIS to create the installer for Windows, and there's actually a similar amount of hackery for OSX if you want to create a .app file.

Have to disagree that the Mac solution is "similar" in any way. There is no compiling of anything, no making of any installer. It comes down to creating a specific directory structure and providing an XML file... much like a JNLP file.

So what are all those little magic gubbins in the .app structure that I have no idea how to generate myself? The xml bit I can get my head round but it'd be nice if the JDK had some tools to make all that stuff for me. Modern world and all that.

So what are all those little magic gubbins in the .app structure that I have no idea how to generate myself?

As far as I know all that is needed is the correct directory structure, an Info.plist file and the executable of course.Cfr. Anatomy of a Modern BundleOne possible 'magic' file is PkgInfo, but that one is not required and also documented

Right.. and that "executable" is not something you compile.. it is the JavaLauncherStub that is provided with the standard Mac dev tools. Essentially it is like javaw.exe.

The other thing that might be hard to get without a Mac is the .icns file that contains the icon for the application bundle. If I knew the format of that file I would write a tool to build these app bundles in pure java...of course you are basically saying that Sun should do that. If they had a tool that would make an "OS integrated" application so that the user experience was more along what the user expected it would help. Instead Sun is doing the more general,but MUCH harder thing of introducing a new application format (Web Start) and hoping that users will get used to that. (Good Luck!)

java-gaming.org is not responsible for the content posted by its members, including references to external websites,
and other references that may or may not have a relation with our primarily
gaming and game production oriented community.
inquiries and complaints can be sent via email to the info‑account of the
company managing the website of java‑gaming.org