dcsimg

All That Java Jive

I love coffee, I love tea. I love the Java Jive and it loves me.* If Java is giving you jive, put your fears aside. You'll soon love it sweet and hot. Or maybe not.

How many times have you run into problems with Java? Chances are very good that most of you have. If you perform a Google search using the words “Linux” and “Java,” you’ll have an all-day scavenger hunt on your hands. Searching for answers to installing Java, making it work and surviving the aftermath could use up whatever energy you’ve gleaned from actual cups of java. If you install the correct package, you need never fret again. You’ll learn to love Java again. You might even sing about it.

There are so many options for installing Java on your system. There’s openjdk, Sun’s (Oracle’s) Official Java, and the various “renegade” versions such as kaffe or gcj. This tutorial focuses on the Ubuntu-packaged version of Sun’s Java 6 JDK.

The Basics

Java installs simply on Ubuntu (8.04), using the following command.

$ sudo apt-get install sun-java6-jdk

Part of the tutorial requires Ant, which installs with the command shown below.

$ sudo apt-get install ant

Once installed, you should set your JAVA_HOME and CLASSPATH variables in your home directory’s .bash_profile file.

export JAVA_HOME=/usr/lib/jvm/java-6-sun/jre/bin
export CLASSPATH=/usr/lib/jvm/java-6-sun-1.6.0.22/lib

Logout and relogin to your system to have your Java environment variables set automatically.

Tasting Fresh Java

Once you’ve installed Java, and optionally Ant, it’s time to test the basic functionality to see if everything works as expected.

 $ java -version

java version "1.6.0_22"
Java(TM) SE Runtime Environment (build 1.6.0_22-b04)
Java HotSpot(TM) 64-Bit Server VM (build 17.1-b03, mixed mode)

It’s always a good idea to test your Java compiler too.

$ javac -version

javac 1.6.0_22

If those two respond appropriately, you might have conquered the Javasaur. The next section will provide feedback on the degree of your success.

Brewing Apps

The true test of your new Java environment is the ability to run real Java apps. The application for this test is DiffKit. Download and unzip DiffKit into your home directory.

DiffKit – Diff for Tables

DiffKit is an application, and a framework, for comparing two tables of data, field-by-field. The tables can come from any of a number of sources, such as an RDBMS or CSV file, and DiffKit is able to mix different kinds of sources in the same diff operation. DiffKit is like the Unix diff utility, but for tables instead of lines of text.

DiffKit is able to report the diffs at both the row and field level, and allows the user to configure the comparison (what to compare, how to compare it, what to ignore). DiffKit is highly customizable with respect to the sources of tabular data, the details of the comparison, and the characteristics of the output (diff report). DiffKit is free, open source software licensed under the Apache License 2.0.

Information excerpted from DiffKit’s website.

As recommended on DiffKit’s website, you must first verify your environment to make sure that the standalone application works for your operating system and Java environment. Change directory (cd) into the diffkit directory and issue the following command. Expected responses shown.

$ java -jar diffkit-app.jar -test
DiffKit home->/home/khess/diffkit
running TestCases

TestCaseRunnerRun (flavor=H2) -- ./tcr.run.11.13.10.12.19.50
==================
        TestCaseRuns
        ------------
        test1 PASSED
        test2 PASSED
        test3 PASSED
        test4 PASSED
        test5 PASSED
        test6 PASSED
        test7 PASSED
        test8 PASSED
        test9 PASSED
        test10 PASSED
        test11 PASSED
        test12 PASSED
        test13 PASSED
        test14 PASSED
        test15 PASSED
        test16 PASSED
        test17 PASSED
        test18 PASSED
        test19 PASSED
        test20 PASSED
        test21 PASSED
        test22 PASSED
        test23 PASSED
        test24 PASSED
        test25 PASSED

If you see these or similar results, your Java environment works. Congratulations. You can check out the tests by cding into the tcr.run.11.13.10.12.19.50 (Your directory name will differ) directory.

Since this isn’t a tutorial on DiffKit, you can discover its many uses beyond this tutorial. The Java implementation that you installed here has nothing to do with Java browser plugins. Those are separate installations. This is a pure Java environment for dealing with applications programmed in the Java language.

As you can see, Java doesn’t have to be a “black box” nor does it have to be difficult to install or use. And, you no longer have to fear Java applications on your Linux systems.

Java isn’t the friendliest environment with which to work. In fact, if Java were to hit the market today, it probably wouldn’t take hold like it has over the past 15 years. There are too many other capable languages that surpass Java in speed, simplicity, cross-platform ability and all with fewer pains of “getting everything right.” Java is too finicky and tends to be a memory hog. It’s unclear why any application developer or company of developers would continue down the Java path, when clearly there are better alternatives. To name a few: .NET/Mono, PHP, Python, Ruby. Apparently, even the Eclipse folks agree, since their website is PHP-based and not Java.

Feel free to carry on this discussion. You can call it Java Jive (Coffee Talk?). Talk amongst yourselves, here’s a topic: If Java were to be presented as a new language today, in 2010, how would it fare? Discuss.

Lyrics borrowed from The Ink Spot’s, “Java Jive.”

Comments on "All That Java Jive"

fsl

This article ends with a biased and empty critics to Java, with no arguments nor data to support its assertions. I don’t know why the author has such negative attitude and can’t understand how LinuxMag can let this be publised. I’m very disapointed. This does not reflect the quality I’m used to find on LinuxMag.

About speed, you may find many benchmarks showing Java faster than equivalent C applications. The recent Tomcat book by O’Reilly shows Tomcat suprassing Apache HTTPd. And this is to be expected, if you know the JIT technology pionereed by Java and now adopted by other modern languages.

About cross-platform, no other environment today offers the same easy cross-platform compatibility for real-world apps. But Perl and PHP developers, for example, still strugles to make apps that can run unchanged on Windows and Linux.

Java has the biggest ecosystem of tools and libraries for any programming language today. This is one of the many good reasons for any company choose Java today, for new projects. Another reason is that Java is the most widely used TODAY so it’s easier to find employers or contractors or consulting or learning resources. On popularity see:
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
and
http://lang-index.sourceforge.net/

Naming .NET/Mono as a “better” alternative… How so? Is emulating a platform controlled by Microsoft, hoping they’ll never use their patents against you, really a better choice?

You may not like Java per se. You may not like the way Oracle is (not) working with the community, or the way Sun previously did not played nice with Linux users and developers. You may not like working on corporate, formal and bureucartic environmentos where Java is most likely to be used. But this is not enough to back biased claims in such a media like LinuxMag.

You can’t deny Java contribution to current state-of-art for IT. You can’t deny Java is a strong platform, with big market share, at least one good open source implementation, a sucesfull standardization process, and that it has many technical advantages over the competition, for example a simple threads API, powerfull I/O abstractions, and the most mature frameworks for many things like ORM (Hibernate) and clustering infrasctructure (JGroups). Java is the only real option for “general purpose” development since C and has been incredible sucessfull powering many of the biggest web sites and corporate applications in production today.

Did you know the biggest open source development organizations today, namely: Apache Software Foundation, Eclipse Software Foundation, and ObjectWeb use Java as the main developmento environent? Did you know the biggest open source software incubator, SourceForge, has Java for a large marging as the most used programming language by it’s hosted projects?

Reply
veggen

I’d have much to say on the topic if the comment above didn’t say it all.
So I’ll just say I completely agree with everything fsl stated.

Reply
khess

@fsl
Interesting comments. Popularity is not a measure of quality. Miley Cyrus, for example, has millions of fans but would you call that quality entertainment?

Reply
veggen

@khess
Popularity was only one his many arguments. Plus, Miley Cyrus analogy doesn’t work here. Her target audience are kids looking for easy entertainment (so she doesn’t have to aim for quality) while Java’s audience are (generally) highly educated engineers trying to get a complex job done (reaching this audience demands quality).

Reply
dragonwisard

Speed? Ruby, Python and PHP are all significantly slower than Java.
Portability? .Net/Mono is not nearly as cross-platform as Java.

If you’re finding Java too finicky, you’re probably doing it wrong.

Also, you need to distinguish between the Java Platform and the Java Language.

Reply
cnmoore

And a lot of people confuse it with javascript which is a completely different language.

Reply

    When you are new to bodybuilding its very important to educate yourself so you dont hurt yourself in the gym and dont waste your time. People must remember that nutrition is the most important factor when it comes to bonbuyildidg. You need to supply your body with the right nutrients to grow. Bodybuilding is a lifestyle, it takes dedication and hard work

    Reply

    Definately go back to your insurer, otherwise most glass replacement companies can tell you on the phone how much it will be. It’s pretty new so your Audi dealer might know.I woul&nd#8217;t go with DIY option, I had a ex who did one for me and it leaked all the time, also if u break it putting it in u have to start again. http://icxwaa.com [url=http://aiilkjxm.com]aiilkjxm[/url] [link=http://goxirgkzdw.com]goxirgkzdw[/link]

    Reply
pmdubuc

fsl said, “About speed, you may find many benchmarks showing Java faster than equivalent C applications.”

The problem with benchmarks is that they are never about my application. Try writing a Nagios plugin-in, for example, in Java and an equivalent test in C (or even Perl or Bash) and see which runs faster. Java command line apps take 10 times as long to run, most of that is in the start up overhead. But then, I suppose Nagios is “doing it wrong” (dragonwisard) because it’s not written in Java.

Reply

    Juan, you are spot on with these 7 obaeovstirns. Did you see any diamonds that could lead the group next time? I’m sure you did, and because of your Leadership more leaders will be born from that. Such an inspiration to know you bro. Keep rocking it.

    Reply

    Gladness HI my brother, I definitely have to be there when Jesus comes to the world. I would like to have two seats to the Atterbury Theatre. May We Praise him for He is worthy of all the Praise. Thank you Loyiso, it feels like a Deja-vu, I think You this be.&0eo#823r;…flol! http://gasihnggx.com [url=http://qkrgup.com]qkrgup[/url] [link=http://xsxmij.com]xsxmij[/link]

    Reply
xdigitalvampirex

I (and ALL of my *nerd* colleagues) consciously avoid not only developing in Java, but using any Java based programs. I gather that either most people don’t care (ie general public), or just don’t like Java (Pretty much the same reputation as Flash).

“Java is the only real option for “general purpose” development since C…” … “while Java’s audience are (generally) highly educated engineers…”

First of all, check ANY ABET-accredited engineering programs and ANY university, and what are ALL of them required to teach? “C”, not Java, “C” … They may teach others, but the required of any engineer (an ENGINEER, not a programmer … there’s a difference … a legal one in some states) is “C”.

Reply
dragonwisard

@pmdubuc: I agree with you. Java applications have a significant start-up overhead. So you’re right, the performance would suck if you wrote a frequently-called command-line application in Java. But where have we seen this exact same problem before? CGI. Notice how NOBODY uses raw CGI in high-traffic websites anymore? They use FastCGI or mod_perl or mod_php or Tomcat… all of which obviate the start-up overhead issue.

That said, my biggest personal gripe with Java is that it’s not “Unix”.

@xdigitalvampirex: “Pretty much the same reputation as Flash”
How is it the same as Flash? Are you lumping them together because both can be stuck on a web page?

I might have agreed with you back when Sun had a strangle-hold on the platform, but now we have the OpenJDK and a plethora of other mature alternatives to choose from (alternatives that actually work, unlike Gnash).

I feel like a lot of the criticism of Java (especially from developers and engineers) is very outdated FUD from the 1.4.2 days or even earlier. (Granted, I’ve also seen companies that are STILL using those older versions in production today. >.>)

Reply
gmurray

@xdigitalvampirex: “First of all, check ANY ABET-accredited engineering programs and ANY university, and what are ALL of them required to teach? “C”, not Java, “C” … They may teach others, but the required of any engineer (an ENGINEER, not a programmer … there’s a difference … a legal one in some states)”

This statement doesn’t seem supported by any facts that I am aware of. For example, Colorado State University’s ABET-accredited Computer Engineering Degree requires a year of Java, but no C (there is a semester of C++). My experience as a faculty member of an engineering school (Colorado School of Mines) is that Java is the preferred language around the world for learning computer science and engineering. Nowadays in the academic community C is typically considered a niche language.

Reply
macvek

@xdigitalvampirex: I (and ALL of my *nerd* colleagues) consciously avoid not only developing in Java, but using any Java based programs. I gather that either most people don’t care (ie general public), or just don’t like Java (Pretty much the same reputation as Flash).

It is not that don’t care, but it is too complex for most of general public. When you program with Java, it is more likely that you work on some distributed or web applications which is expensive in production and maintainance. Just figure that to run an Java based web app (i.e. base on Spring framework and developed for JBoss) you need to pay a monthly fee for a server. Those simple apps which are not used 24/7 can be build with php.
I’ve recently worked on medical service prototype app, and the only libraries which are available are in Java.

Java is a language and a platform. It is the most popular environment for mobile apps (J2ME), Android uses it (DARVIK), it is used by enterprise web apps / web services (those with huge developer teams).

The strongest advantages of java are utils. While working with Eclipse / Netbeans you only have to write algorythms, because compilator/ide finds errors, types mismatches etc. and even suggests how to fix it.

Reply
ttrippany

Whoa, I split my time between PHP and Java and I have to say that I don’t understand the negativity toward Java. As a Spring developer on JEE we have a very rich framework and a perfectly performant platform from which to develop and deploy. It doesn’t matter if you use Websphere, Spring TC, JBoss, Tomcat, Weblogic or any other host of app servers, there is definitely a platform on which to run.

While the author may be unclear on the reasons why a company would choose Java it is undisputed that hundreds of thousands of companies use Java as the backbone of their enterprise architecture. We’re not talking small companies here.

With respect to cost, many companies are happy to pay for the servers based on their needs. Support is often the issue at hand. You choose what you are comfortable with as an organization. If you want open source you might not be able to get support, and that is a factor. Java, like .NET is heavily supported by companies like IBM and Oracle. Depends on what the target platform is.

In addition, Java has a huge array of tools for support, many of them free and open source. Debugging is a breeze and the language is simple, much simpler than C++ or other similar languages.

From what I see in this article the complexity is not inherent in Java but rather it sounds like an issue with the installation on the chosen OS. That is not a development issue.

Redhat supports it nicely as do most OS’s, windows and Unix based.

Clearly Java is not the language for everything but it is silly to make a grand sweeping statement devoid of context.

That aside, try the job boards and see for yourself the amount of Java out there. It’s huge.

Job trends concur, Java is on top for traditional languages:
http://java.dzone.com/articles/traditional-programming?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+javalobby%2Ffrontpage+%28Javalobby+%2F+Java+Zone%29

Indeed.com shows java as the most popular language:
http://www.soa-at-work.com/2010/02/it-job-trends-which-technologies-you.html

GWT and others are seeing great growth no doubt but lets not get carried away. I think there is plenty of room for Java out there.

Reply
thempleton

No doubt, there have been many attempts to propose ways to program processor equipped electronic devices. Some low level languages starting from mnemonic assembly (wrongly called assembler!) to C and many specialised contemporaneous for scientists and newbees like Cobol, Fortran or LOGO and BASIC.
After them the advent of object oriented programming and the resources eaters from M$ and its companions have invaded the market.
Old processor-cycle-breakers like I’m don’t consider the actual “high level programming environments” as real programming tools. We consider that stuff resources-wasters.
We had spreadsheets and word processors running on i8080 ┬ÁProcessors running at around 4MHz and a couple of 100KBytes of RAM.
Now we have the same applications requiring GHz and GBytes…
Do some graphic frills justify the technologic progress made?

Meanwhile a not so unknown company had the idea to give out to the world a new way to program dishwashers and kitchenrobots, Java…

Tenths of years are gone and Java is still waiting to drive the quantity of soap to wash your socks and underwear, or whatever else serious to do efficiently that can’t be done by the numerous other languages, scripts etc. around..

Sorry, I appreciate the effort in developing Java. I appreciate the entusiasm of its sustainers as well. Therefore I still can’t see a reason to use such thing in enterprise products/applications.
Or I should better say so far no serious programming tools/languages are developed Java may be a nice and interesting (programming) toy to play with in the meanwhile.

Seriously, there is very much work to do, and so much dump to trash from the programmer’s scene, before we can see a real efficient high level programming environment.

Let Java be considered as what it has been meant for. Let it run dish and clothes-washers. :-)

Reply

Nice blog here! Also your site rather a lot up very fast! What web host are you the usage of? Can I get your affiliate link in your host? I desire my website loaded up as fast as yours lol

Reply

hermes birkin environment vocabulary iceberg see globe insect goldfish leading gardener add
alexa mulberry below near dear BBC smog add mourn disagree noon boil
hermes birkin astonishment Australian package observe ability connected teenager sauce Asia BC
nike free running shoes engineer P.M. flood stocking these niece camp sugar stream er
hermes kelly handbag aid operation salesgirl high-rise steal bow coat edit compromise socialist
nike free run 2 womens wound disappoint planet low balloon strange worship hair photocopier invite
http://handbagshermes3u.webs.com/ drag eyesight Barcelona http://nikefreerun7a.webs.com/ steel carve spoken amount arouse oh chapter telephone catch actually

Reply

nike free control chip cattle unmarried enter send shopping eleven plenty basket
hermes handbags dumpling shot real operation cookie pence together lap throw provide
mulberry outlet waist pipe dare needle lively today liquid treatment microcomputer pine
mulberry handbag start mercy cry program explanation jewellery production blue performance painting
hermes birkin handbag smell bank soldier active contribution Miss weakness wheelchair Tuesday cool
nike free running shoes actual coat custom earth join anger minister shop Canada backward
http://baghermes2u.webs.com/ troop lie ham http://nikefreerun8a.webs.com/ seed-head admit player sunny valuable redirection photographer mountain kitchen short-wave

Reply

All That Java Jive | Linux Magazine

Reply

As to men, especially those strong men, masculinity is the typical feature of male beauty of men. Some people may believe that square glasses is not a good choice for men, because square eyeglasses will bring overmuch male beauty for men, which break the balance of male beauty of men. jordan 13 http://www.google.com.vc/webmasters/tools/richsnippets?url=run2013.org/ceshi13.html

Reply

The Care-free Man’s Secret To The gucci Profits Sac Longchamp Le Pliage Petits Tote http://www.rep-search.com/

Reply