I've been assigned to develop a software on Linux, opensuse 11.4. Now the issue is that I'm a Java developer and I want to make that software on Java. Can I use Eclipse IDE for this software? It will be a desktop application on Linux. If Eclipse supports this type of development, what plug-ins do I need to get it started?
Plus I need to use some library routines as well. Can I do all this using Java and Eclipse IDE and some additional plug-ins?
Any help would be highly appreciated.
You may not realize it, but there are two distinct parts to this question. The response depends somewhat on whether you've already decided what GUI toolkit to use. The two obvious choices for a Java app are AWT/Swing (Java's "standard" GUI frameworks) or Eclipse's SWT/RCP. You see, Eclipse is more than just an IDE, it's a platform on which you can build applications. Here is the official description, and here is a very good intro and tutorial. Of course has plenty of tooling built-in to help you develop an RCP app.
If you're looking to stick with AWT/Swing, then Eclipse also has tooling to help with that. Specifically, WindowBuilder (WB) is included in the Eclipse IDE for Java Developers package that you can download. WB helps a lot in designing and implementing your GUI.
Java is (almost) write once, run anywhere (WORA). Thus any Java program you write should be able to run on any architecture and operating system that supports Java. In other words, you don't need to do anything extra to make your program run properly on Linux.
Eclipse can package your application in nice JAR files and the like which can be distributed to any OS.
Just download Eclipse IDE for Java Developers. You won't need any plug-ins.
Related
Is it possible to get a good preview of the java swing application without running it repeatedly in IntelliJ? Whenever I modify code I have to run it again and again so that it looks good.
It also generates a bunch of classes that I don't really need since I'm committing to a GitHub repository How do I do this?
I don't know about IntelliJ, but Eclipse has WindowBuilder, a visual designer and development tool that supports Swing. You can install it into a variety of Eclipse releases, I don't think it comes pre-installed in any of the Eclipse packages.
eclipse and NetBeans does have some WindowBuilder future
if you are using eclipse download this
and if you are using Netbeans it does provide a WindowBuilder itself so read this article
What type of developer are each of these IDEs aimed at? Is one IDE a superset/subset of the other? What can I do using one and not the other?
I'm looking to do mostly desktop based (Windows) work for now so I believe I am correct in ignoring the Java EE download and focusing on these two.
The comparison of features page isn't helpful as I'm still new to Eclipse and Java. For example "Code Recommenders Developer Tools" means nothing to me yet.
Eclipse standard has been downloaded 1.7 million times and is 246MB (as at 7-Sep-13). While Eclipse IDE for Java developers has been downloaded 430,000 times and is 151MB.
So I'm guessing Eclipse Standard is the way to go, but why do they offer the second option?
All the other answers are more or less true, but miss the point (in my opinion), The download page states it clearly:
Eclipse Standard ...
The Eclipse Platform, and all the tools needed to develop and debug it
versus
Eclipse IDE for Java Developers ...
The essential tools for any Java developer, including a Java IDE, a CVS client, Git client, XML Editor, Mylyn, Maven integration...
So if your focus is to develop for Eclipse itself, the Eclipse Standard includes all what you need (including the sources of all features and plugins).
If your focus is Java development (not Eclipse plugins), you should start with the Eclipse IDE for Java Developers.
If your focus is Java EE development, it is simpler to start with Eclipse IDE for Java EE Developers and so forth ...
The comparison page could certainly use some links, nevertheless a quick web search will tell you all about those plugin.
For your needs, you might look into the "for Java Developers" package, as it contains WindowBuilder, which let's you define GUIs visually in several frameworks.
(Code Recommenders is also nice, but I've personally found it a bit hit-or-miss)
However, you're fine installing any of the packages either way, since you can always install the plugins you need later on. My recommendation is to simply read about those plugins and make an informed decision on what you should install.
If you're doing GUI work then you might choose the Java Developers package as it comes with WindowBuilder.
Other similar questions are:
https://stackoverflow.com/questions/7835305/what-are-my-options-for-developing-a-gui-in-java-in-eclipse
Best GUI designer for eclipse?
Create GUI using Eclipse (Java)
The difference between the eclipse downloads are just the pre-installed plug-ins.
I'd go with standard and install the plug-ims i want, but take what fits you.
I had created a Java Swing Application, I want to run my applications, in all System, Suppose if a System, does not have JRE, then i have to install JRE using Installer in program without aware of the user knowledgeable that the JRE is installed.
There were a few projects for doing this, but from what I can see they all fizzled out - bottom line seems to be that you need a JRE - especially for swing
The best solution is not to try and install anything silently, but instead to assist the user to install Java. Oracle's deployJava.js was designed to do just that, before embedding applets or launching Java Web Start applications.
While on the subject of JWS, it is also a good choice for installing/running & updating Java rich client (e.g. Swing) apps. on platforms that support Java.
You can generate an EXE out of your Java source but you will still need the JVM to run it on the destination System. So its not real native.
There is no workaround for running non native class files reliably or really at all without the JRE.
can we develop java frontend application just like we do in WPF? that runs on windows platform?
Of course, just use Swing or SWT.
of course you can use java also for frontend applications, those applications will require the java VM and will probably run in some platforms not only windows, this in general then depends on the details of your specific application.
Said so, I am not aware of libraries available in the Java world which would let you compose rich and advanced user interface like you can do with WPF.
Of course, Java can be used to create front-end applications that run not only on Windows, but on any operating system that has Java installed on it.
To create front-end GUIs, you could use either AWT(very old, not recommended), Swing or SWT(the latest addition to the Java GUI library by IBM).
XUI is an XML-based frontend development toolset for Java.
If you're looking for a ClickOnce equivalent, Java Web Start would be appropriate.
There are several GUI toolkits out there (as already mentioned by others), but they only provide the basic building blocks. (WPF also falls in this category, AFAIK.)
I recommend to build GUI application on top of a modular Rich Client Platform (RCP) such as the NetBeans Platform (Swing-based) or Eclipse RCP (SWT-based).
Here some links for the NetBeans Platform:
http://platform.netbeans.org/
http://netbeans.org/features/platform/features.html
http://netbeans.org/features/platform/all-docs.html
There´s a technology for desktop frontends from ADOBE called Adobe AIR.
It´s similar to WPF (it uses a variation of XML, in this case MXML), and has several rich components and effects!
Try it out at http://get.adobe.com/air/
Now, don't get me wrong, I am a very competent programmer, but when I program, I typically develop things for the web using scripting languages like JavaScript, PHP, Python, SQL, etc. If I want to develop Java software (I am relatively experienced in Java), how do I distribute it?
Is there any good way to package up Java software in a nice little executable, send it out, and have it run? Alternatively, is there any good way to package up Java in some sort of installer, and send it out to be installed and run?
I'm using Launch4J http://launch4j.sourceforge.net/ it will generate an .exe executable for Windows, if the targeted system don't have JVM, it will tell user to download and get JVM.
You can package Java applications in so called jar-files using the jar tool or any competent Java IDE. These jar-files are self-contained and seldom need any installer.
These .jar files can easily be distributed and executed.
If you're used to web-development, you may also be interested in the Java Webstart technology.
Some links to get you started.
Export to a .jar-file in Eclipse
Lesson: Java Webstart
I have found two approaches to work well, depending on the needs of the end user.
1) Java WebStart - allows for central distribution and easy maintenance, but works best for online users. Require you to have a web site to locate the files - these days this is easy to do on the Google Application Engine.
2) Wrapping up the Java program in a single jar using one-jar, and then using jsmooth to generate an .EXE file which ensures Java is available, extracts the jar-file and invokes Java on it. This works well for users not always on the net, where you want the launch process to be transparent, but is less easy to upgrade than the webstart approach.
I use Maven to handle all the dependencies of my projects and that way when you utilise Maven to build your projects they will compile into one nice executable jar that contains everything so you dont need to worry about getting all your third-party jars in the right place etc.
There are a couple of ways: one is to create an installer that allows your user to install and run it. For this you can take a look at NSIS.... or you can just use Java Web Start where your user can just click the link and launch your application.
Here you will find a large set of options: Open Source Installers Generators in JavaIt is very useful for the "naive" customer or user of your application, to make the installation process as painless as possible. Let them install whatever is needed, DBMS, JVM, JMF and additional options via one installer.
You can also consider use one of the rich client platforms available for Java. The learning curve is probably a lot higher than just creating a jar file and ship it, but you will get a lot for free when it comes to distribution. (Think Eclipse with auto update through an update site).
Do a search for "Eclipse RCP" and "Netbeans RCP" and you'll find the two biggest contenders here. I also performed a serach for "eclipse RCP installer" and one of the hits seems interesting:
http://download.instantiations.com/RCPPackagerDoc/integration/latest/docs/html/gettingstarted/GenInstaller.html
I personally like izpack. It generates a jar file installer that you could wrap up in launch4j, supports things like windows specific shortcuts, is highly customisable through XML and hooks directly into ant.
OneJar is great for smaller stuff, but for larger programs or applications it's nowhere near as flexible and in my experience is rather slow.
Hello you can make an installer for your application.
In the link below you will find a nice help about izpack installer.
http://www.imrantariq.com/blog/?p=89
Link below contains a detailed pdf to make installer with izpack.
http://www.imrantariq.com/blog/?attachment_id=112
cheers