Creating an installer for a Java app - java

I need an advice here.
I need to create an installer for a Java application. After googling around a bit, I landed at these pages. After analyzing a little, I decided to go with IzPack. I found this nice blog post using which I was able to create a decent installer stub.
However I am now stuck with the further development. I need to customize my installer in several ways, and I am sure they're possible with IzPack, but I cannot figure out the ways to do it. The IzPack mailing list and its stackoverflow tag has a very low activity, and the documentation is very poor.
So I ditched IzPack, and started writing my own installer manually. After writing only two frames, I am realizing this will take much more time and might not be feasible.
Do you know of any other installer generator that has a better documentation and community support? Or do you know any good resources and links on IzPack where I can have my questions answered? Or do you suggest I stick with the custom installer approach? Please help.

You can try with install4j, it have a good documentation and commercial support ...
Another valid alternative to create a multi platform installer could be BitRock Installer (InstallBuilder) .

If you are running on windows, take a look at iexpress
To try it out press alt and simply type iexpress and press enter

Look to Java Web Start. It is cross-platform and has good support (on SO), as well as good support from the manufacturer (Sun/Oracle). I don't know if it fits the other requirements of this installation, but might know more when you specify those requirements.

Related

Is it possible to have real time collaboration in an online IDE?

I am actually trying to create a browser based IDE for educational purpose to code java language programs. I want it to be something like eclipse orion except that the IDE will be capable of compiling and debugging java language code (and it will be only a bare bones IDE). And also, I want to add real time collaboration to at least the editor part of the IDE.
Would it be possible to create an online IDE that would have real time collaboration like the google docs? Also, is MobWrite one of the ways of achieving it and is it good?
If it is possible, please inform me.
Thank you very much in advance.
I think there is an interesting option out there by IBM(Just rode in a blog),
called "Web Browser-Based Interaction with the Eclipse IDE".
Have a look at this link:
http://www.rodenas.org/blog/2007/10/16/eclifox-web-browser-based-interaction-with-the-eclipse-ide/
So the answer is yes, it is possible somehow.
I hope it helps.
Update:
There is a similar question already on that topic(but browser interaction with the IDE is not mentioned), have a look at it, maybe can be helpful:
Real-time collaboration in Eclipse
In theory, anything is possible.
In practice, I'm not sure that collaborative programming ... where lots of people are hacking on the same files in real time ... is going to be productive.
Programs are qualitatively different to text / markup documents. When you two people are simultaneously editing a program, semantically conflicting edits can break the "work" in a far more fundamental way than conflicting edits on a document. I don't see this being an effective way to write programs.
Sure, JavaWIDE is what you are looking for: http://www.javawide.org
It has concurrent editing, and you can compile and run directly in the browser.
JavaWIDE is free and sites are available to educational institutions.
Feel free to try it out (no account needed) at http://sandbox.javawide.org
Cloud9 IDE has multi-language support has recently released a new collaborative tools including a new real-time collaborative editing feature (with authorship info), Group Chat and File Revision History timeslider. Further explained in https://c9.io/site/blog/2013/10/new-collaboration/
Mostafa,
The Cloud9 IDE Developer behind that Collab
It depends on the purpose of the IDE. JavaWIDE provides a great IDE for introducing programming concepts for novice programmers at the beginning of their programming classes. JavaWIDE will probably never be used for professional programmers.
Koding has a real time collaboration tool (with a bunch of cool stuff) where you can import your projects really easy. It also has a free VM with root access. Definitely worth checking out. :)
I recently saw Compilr and It seems pretty decent. You can run it inside a browser, full collaboration work is supported and Its cross browser and you can run it on your devices as well.
Nice thing is that it also includes some basic courses for you to learn coding which is exactly what you are looking for :)
For an on-premise install (you don't depend on external servers/services ) you could try Eclipse + saros (http://www.saros-project.org/), saros depends only on XMPP but you could build your own server locally (http://www.igniterealtime.org/projects/openfire/)
For web based collaboration tool on-premise too I've been developing this: https://github.com/juanitomint/Space_Editor
It's based on nodejs,Extjs,ace editor and git, contributors are welcome

platform independent paid installer

For my java project i need an installer which is professional like InstallSheild or advanced installer,
Please suggest me some installer which are professional and are paid.
In past I used InstallAnywhere. Unfortunately I do not remember from which company. But try to google InstallAnywhere and follow a couple of links. All are good.
InstallSheild and InstallAnywhere are both Flexera Software products. You can find them at http://www.flexerasoftware.com
If your interested in a comparable free installation system you should try WIX. You can find them at http://wixtoolset.org
You will find quite a big learning curve with Wix, but it's just as good if not better than InstallSheild once you've learned how to use it.

How to make an uninstaller in java

How to make an uninstaller ( for windows ) in java,
i know the way how i should delete files, i just want to know how to put the uninstaller in the 'delete programs' section of the configuration screen,
Please do read the question, we do not want answers for software to make an installer, since we have already written our own program, we are a group of students with an interested spirit, so we wish to write these things ourselves, and don't want some software from someone else.
kind regards
jonathan
Please, do not write an installer by yourself. It looks deceptively simple, but isn't.
Either let the user launch your program through Java WebStart (which doesn't look like a Windows system but is acceptable for a central distribution model), or use one of the many existing installers which support Java.
Note: If you target enterprises, choose one that generates MSI. These can be centrally installed silently.
You should not have written your own installer in the first place.
Throw it away, and use a professionally-written installer generator to generate an installer (which will include the uninstaller.)
I recommend Launch4J, or for simpler installations (i.e. no custom install options) Java Web Start may be easier.
Izpack allows the creation of cross-platform installers with optional uninstall (under Add/Remove in MS Windows)
Or you can try non-free Install Anywhere
Java Web Start offers an uninstall facility. It also offers the ExtensionInstallerService which is intended to perform other set-up/pull-down beyond the standard 'cache or delete classes' (e.g. un/installing a DB).
Here is my demo. of the ExtensionInstallerService.
BTW - noting your further comments, I agree with the advice not to go that route.

What is the best approach to port an Android application to Windows?

I used Eclipse with the Android SDK to develop the original application. I ask since this was my first Java (and Eclipse, and Android, and XML) project. I assume that most of the Java should run on the PC without too much trouble. I may want to restructure the code to isolate the Android specific functions. Should I stay with Eclipse or move to something like NetBeans? Any advice would be terrific.
Eclipse vs Netbeans is irrelevant to your problem. They are both just glorified text editors that let you edit java code, with a little bit of compilation help. You can write any java app in either, its really just personal preference.
The ease of porting to windows really depends on what your application is. If you have a large chunk of code that is not dependent on any of the UI or lifecycle stuff, then you should be able to create a separate java library for that and reference it in both your android app, and your windows app.
The challange will be replacing the UI. As Fredley mentioned, swing is the built in option. Its a bit of a pain, but you should be able to find plenty of documentation on it.
If your application is tightly tied to the UI, then you are going to have a very hard time finding any code in common.
Assuming that most of your code is in Android-independant classes, your biggest hurdle will be the GUI. Investigate swing to start off with.
The choice between NetBeans and Eclipse is largely one of preference. NetBeans has some nice GUI tools- but so does Eclipse. In my opinion, it's usually best to stay with what you know.
Here's a decent post on the subject of Java IDEs: What is the best free IDE for Java Programming

Are there any Java libraries which I can use for automated testing of Windows GUIs?

Currently I am doing automated integration testing using FitNesse (Java) and have successfully plugged-in Watij to access a web-based application. I would like to extend this to also drive Windows GUI (non-Java) applications. To this end, are there any Java libraries available which I can use in a similar way?
Matt,
I don't think you are going to be able to test your non-java GUIs with Java libraries.
That being said, you could take a look at AutomationAnywhere (.com) and see if that fits your needs. This tool is very robust and very expensive, which may not be an issue if your company is going to pay for it. You might try a free trial out and see what you think.
Good luck,
-Robert
Abbot is one that I'm aware of, which is nice and free. I don't know if that will fit your your situation. You might also look at UISpec4J.
There are Java based (commercial) tools for GUI testing like Squish or GUIdancer.
If they do not already expose a Java API I am sure that you can talk to their support to add such a feature.

Categories

Resources