From Fedora Project Wiki

Purpose

To make Java a friendlier language. To make it easier for beginning and experienced developers to learn and work with Java on Fedora.

Request for Additions and Corrections

Please e-mail me your ideas.

How to Learn Java

Here are some quality learning resources:

Java is Available from Multiple Vendors

The standard Java platform is implemented by products from multiple vendors:

  • OpenJDK is the default for Fedora
  • Oracle
  • IBM
  • GNU Java

OpenJDK is the product backed by the open source community, including Fedora.

Java Version Numbers: Apparently Designed to Produce Customer Confusion

Sun Microsystems, the creators of Java, apparently thought it would be good marketing to refer to the same versions of Java with different numbers.

  • 8 = 1.8
  • 7 = 1.7
  • 6 = 1.6
  • 2 = 1.2, 1.3 & 1.4

Where is Java Installed?

/usr/lib/jvm Docs?

Setting the Active Java Runtime

alternatives --config java

Invoking Java Runtime Programs

  • java
  • javac
  • jar

How to Run Java Applications

How you run a Java application depends on how it was packaged and distributed to you. If the packaging was done well, running the application can be as simple as selecting it from a menu on your favorite desktop environment. However, since one of the primary goals of Java is that Java applications should work on any and all operating systems, it is likely that you may receive a Java program that is packaged in a very basic form (for example, a .class or .jar file) that works on all operating systems. This makes it slightly harder to run the application because you have to understand a little bit about how Java works.

Running a Jar File

Running a Class File

Creating Java Programs

Editing Java Code

Compiling Java Code

Testing Your Application

Packaging Your Application for Distribution to Users

IDEs and Editors

Vim

Emacs

Eclipse

Android Studio

BlueJ

Rational Application Developer from IBM

Program Types

Command Line Programs

GUI Programs

Swing

Gnome

KDE

Web Apps

Tomcat

Jetty

Mobile Apps

JEE Apps

Accessing Native Code Libraries

C/C++

Ada

Appendix A: Why Use Java?

Appendix B: Complaints About Java

Isn't Java too Old?

Just because something is new does not make it better. Windows Vista was new once, but it was never better. There are also technologies much older than Java that are still considered to be good and relevant:

  • UNIX - the ideas and standards behind Linux
  • Linux - Primary server operating system used by Google, Facebook, YouTube, etc.
  • C - Linux, BSD Unix, Windows, and MacOS are all written in C.
  • C++ - Google Chrome, Firefox and Internet Explorer are written in C++

The idea that Java is too old is nonsense, as shown by the older technologies that we use and take for granted every day.

The truth is the opposite. The best technologies start with good ideas and are refined over time to be better and better. Java is better today than it ever has been and is still evolving.

Isn't Java the new COBOL?

Java is the language behind Minecraft, Runescape, Android, and Hadoop. What about those products says "COBOL" to you?

Isn't C# a Better Language?

C# is just Java repackaged with a few changes. Microsoft tries to differentiate C# from Java by saying things like "CLI is not byte code." But, that's basically what it is, regardless of what rhetoric Microsoft uses.

Java is not just a language, it's a whole ecosystem of ideas and components that work on all operating systems.

C# and .NET are not provided by Microsoft for non-Windows platforms, whereas Java is provided by Oracle in forms that work the same on Windows, Mac, and Linux. And other vendors provide conforming implementations of Java for their platforms like IBM's Java for AIX.

Even though Mono exists on non-Windows platforms, there is no guarantee of compatibility between Mono on Linux and C# on Windows and there is for Java on multiple platforms.

If you disagree, I challenge you to write a C# app on Windows that does something useful and try to run it on Linux with Mono. In contrast, this cross-platform capability is common place with Java apps. Examples are: Eclipse, soapUI, Minecraft, RuneScape, Hadoop, SquirrelSQL, Apache Tomcat, IBM WebSphere Application Server, etc.

  • Isn't Java insecure?
  • Isn't Java too slow?
  • Isn't Java too wordy?