Archive

Posts Tagged ‘java’

How to install sun-java6-jdk and Netbeans in Ubuntu 11.10

October 14th, 2011 9 comments

If you’ve recently upgraded to Ubuntu 11.10 and are a developer you may notice some things missing. For one there is no longer an option to install the sun-java6-jdk or JRE from the repositories. Worse they also removed the Netbeans IDE. Apparently this had something to do with licenses but if you’re going to offer MP3 support the least you could do is make software like this available for those who are willing to look for it.

Anyway with that rant out of the way I did manage to find a way to install both.

Install sun-java6-jdk

Following the instructions on this excellent post I was able to successfully install sun-java6-jdk using the following commands:

sudo add-apt-repository ppa:ferramroberto/java
sudo apt-get update
sudo apt-get install sun-java6-jdk sun-java6-plugin

There are alternative instructions for installing Java 7 as well.

Install Netbeans

My first attempt at installing both was to head to the official Oracle Java website and download the Netbeans + JDK installer. Unfortunately the installer seems to crash in this version of Ubuntu. However since the above process had installed the JRE I was able to simply grab the Netbeans only installer from Oracle which ended up working surprisingly well. Just remember to run it using sudo if you want other users to be able to use it as well.




I am currently running a variety of distributions, primarily Linux Mint 17.
Previously I was running KDE 4.3.3 on top of Fedora 11 (for the first experiment) and KDE 4.6.5 on top of Gentoo (for the second experiment).
Check out my profile for more information.
Categories: Tyler B, Ubuntu Tags: , ,

Android development in Netbeans

June 24th, 2011 2 comments

So you want to do Android development but you hate Eclipse? Well fear not, there is another IDE that you can use to meet your mobile development needs. This is a quick guide, mostly for my reference later, on how to setup an Android development environment in Netbeans.

1. Download and install the Android SDK and Netbeans IDE like normal

Pretty self-explanatory just grab the installers from here and here respectively.

2. Download and install the Android plugin for Netbeans

The plugin to use is nbandroid and the easiest way to get it is to download it from right within Netbeans. First add the update xml (http://kenai.com/projects/nbandroid/downloads/download/updatecenter/updates.xml) to Netbeans.

Then simply install the plugin from the refreshed list of available ones.

3. Create an Android project

Just like you would create any other project in Netbeans. This will prompt you that you need to set up the location of the SDK. This can be done through the Manage Android SDK button.

Once created the project should be more or less good to go. Don’t worry if you get an error about a missing file R.java, this file will be automatically generated for your when you build the project the first time.

4. Profit?

That’s pretty much it. Now when you click run it will build and deploy your application to the emulator just like it does in regular old Eclipse.

Originally posted on my personal website here.




I am currently running a variety of distributions, primarily Linux Mint 17.
Previously I was running KDE 4.3.3 on top of Fedora 11 (for the first experiment) and KDE 4.6.5 on top of Gentoo (for the second experiment).
Check out my profile for more information.

Create a GStreamer powered Java media player

March 14th, 2011 1 comment

For something to do I decided to see if I could create a very simple Java media player. After doing some research, and finding out that the Java Media Framework was no longer in development, I decided to settle on GStreamer to power my media player.

GStreamer for the uninitiated is a very powerful multimedia framework that offers both low-level pipeline building as well as high-level playback abstraction. What’s nice about GStreamer, besides being completely open source, is that it presents a unified API no matter what type of file it is playing. For instance if the user only has the free, high quality GStreamer codecs installed, referred to as the good plugins, then the API will only play those files. If however the user installs the other plugins as well, be it the bad or ugly sets, the API remains the same and thus you don’t need to update your code. Unfortunately being a C library this approach does have some drawbacks, notably the need to include the JNA jar as well as the system specific libraries. This approach can be considered similar to how SWT works.

Setup

Assuming that you already have a Java development environment, the first thing you’ll need is to install GStreamer. On Linux odds are you already have it, unless you are running a rather stripped down distro or don’t have many media players installed (both Rhythmbox and Banshee use GStreamer). If you don’t it should be pretty straight forward to install along with your choice of plugins. On Windows you’ll need to head over to ossbuild where they have downloadable installers.

The second thing you’ll need is gstreamer-java which you can grab over at their website here. You’ll need to download both gstreamer-java-1.4.jar and jna-3.2.4.jar. Both might contain some extra files that you probably don’t need and can prune out later if you’d like. Setup your development environment so that both of these jar files are in your build path.

Simple playback

GStreamer offers highly abstracted playback engines called PlayBins. This is what we will use to actually play our files. Here is a very simple code example that demonstrates how to actually make use of a PlayBin:

public static void main(String[] args) {
     args = Gst.init("MyMediaPlayer", args);

     Playbin playbin = new PlayBin("AudioPlayer");
     playbin.setVideoSink(ElementFactory.make("fakesink", "videosink"));
     playbin.setInputFile("song.mp3");

     playbin.setState(State.PLAYING);
     Gst.main();
     playbin.setState(State.NULL);
}

So what does it all mean?

public static void main(String[] args) {
     args = Gst.init("MyMediaPlayer", args);

The above line takes the incoming command line arguments and passes them to the Gst.init function and returns a new set of arguments. If you have every done any GTK+ programming before this should be instantly recognizable to you. Essentially what GStreamer is doing is grabbing, and removing, any GStreamer specific arguments before your program will actually process them.

     Playbin playbin = new PlayBin("AudioPlayer");
     playbin.setVideoSink(ElementFactory.make("fakesink", "videosink"));
     playbin.setInputFile("song.mp3");

The first line of code requests a standard “AudioPlayer” PlayBin. This PlayBin is built right into GStreamer and automatically sets up a default pipeline for you. Essentially this lets us avoid all of the low-level craziness that we would have to normally deal with if we were starting from scratch.

The next line sets the PlayBin’s VideoSink, think of sinks as output locations, to a “fakesink” or null sink. The reason we do this is because PlayBin’s can play both audio and video. For the purposes of this player we only want audio playback so we automatically redirect all video output to the “fakesink”.

The last line is pretty straight forward and just tells GStreamer what file to play.

     playbin.setState(State.PLAYING);
     Gst.main();
     playbin.setState(State.NULL);

Finally with the above lines of code we tell the PlayBin to actually start playing and then enter the GStreamer main loop. This loop continues for the duration. The last line is used to reset the PlayBin state and do some cleanup.

Bundle it with a quick GUI

To make it a little more friendly I wrote a very quick GUI to wrap all of the functionality with. The download links for that (binary only package), as well as the source (all package) is below. And there you have it: a very simple cross-platform media player that will playback pretty much anything you throw at it.

Please note that I have provided this software purely as a quick example. If you are really interested in developing a GStreamer powered Java application you would do yourself a favor by reading the official documentation.

Binary Only Package All Package
File name: my_media_player_binary.zip my_media_player_all.zip
Screenshots:
Version: March 13, 2011
File size: 1.5MB 1.51MB
File download: Download Here Download Here

Originally posted on my personal website here.




I am currently running a variety of distributions, primarily Linux Mint 17.
Previously I was running KDE 4.3.3 on top of Fedora 11 (for the first experiment) and KDE 4.6.5 on top of Gentoo (for the second experiment).
Check out my profile for more information.

A minor setback

September 28th, 2009 2 comments

Since this crazy job of mine doesn’t quite feed my mad electronics fetish as much as I might like to, I do a lot of computer troubleshooting on the side… it helps pay the bills, and is a nice way to stay on my toes as far as keeping on top of possible threats out there (since our company’s firewall keeps them out for the most part).  I’ll usually head to a person’s house, get some stuff done, and if it’s still in rough shape (requires a full backup and format) I’ll bring the machine home.

Yesterday, I headed over to my former AVP (Assistant Vice-Preisdent, for those of you not in the know)’s house to get her wireless network running and troubleshoot problems with her one desktop, as well as get file and printer sharing working between two machines.  Her wireless router is a little bit old – a D-Link DI-524 – but it’s something I’ve dealt with before.

After a firmware upgrade, the option to use WPA-PSK encryption was made available (as opposed to standard WEP before).  Great, I thought!  I go to put in a key, hit Apply, and…

Nothing.  Hitting the Apply button does absolutely nothing.  Two computer and router restarts (including a full reset) later, and the same thing was happening.  Some quick research indicated that, hooray hooray, there was an incompatibility with that router’s administration page, Java, and Firefox.  Solution?  Use Internet Explorer.

Here’s where I really ran into a pickle.  This is the first time I’ve ever felt the disadvantage of using a non-Windows operating system.  If I had Windows, I would have been able to fire up IE and just get everything going for them.  Instead, I had to try and install IE6 for Linux, which failed (Wine threw some kind of error).  I ended up using one of my client’s laptops, which they thankfully had sitting around.  Frustrating, but it was easy enough to work around.

Has anyone else had experiences like this?  Things that are *just* out of reach for you because of your choice to use Linux over Windows?

Programming on Linux

September 27th, 2009 No comments

Now that school as resumed I am getting to spend a lot of time with my Linux install doing day to day productive tasks. The most recent thing that I have had to deal with is programming on Linux. As part of my Computer Graphics class the professor recommended that we install Dev-C++ and GLUT (with related libraries) so that we can code some OpenGL goodness. Well seeing as Dev-C++ is a Windows only IDE that just won’t do.

Instead I opted to install the C and C++ development tools for Eclipse. This works perfectly and within minutes I had a simple “Hello, world!” program up and running. In the past I had only ever used Eclipse for Java programming, however that may be changing permanently in the future.

Next up I had to install GLUT. After a quick search in my Fedora repositories I only had the option to install freeglut listed. So I figured ‘what the heck’ and gave it a try anyway. To my surprise this worked perfectly, even when I still referenced #<GL/glut.h>. This means I can use all of this great open source software to develop the same C++ code that I can then submit to my professor to mark on his Window’s machine.

The only issue I have found is I cannot for the life of me get MinGW to compile the code to a Windows exe. Yet even barring this I must say that all in all I am very impressed!

Eclipse Fails It

September 14th, 2009 No comments

Man, Eclipse works great on Debian! It gives me this cool message on startup:

JVM terminated. Exit code=127
/usr/lib/jvm/java-gcj/bin/java
-Djava.library.path=/usr/lib/jni
-Dgnu.gcj.precompiled.db.path=/var/lib/gcj-4.2/classmap.db
-Dgnu.gcj.runtime.VMClassLoader.library_control=never
-Dosgi.locking=none
-jar /usr/lib/eclipse/startup.jar
-os linux
-ws gtk
-arch x86
-launcher /usr/lib/eclipse/eclipse
-name Eclipse
-showsplash 600
-exitdata 3a0015
-install /usr/lib/eclipse
-vm /usr/lib/jvm/java-gcj/bin/java
-vmargs
-Djava.library.path=/usr/lib/jni
-Dgnu.gcj.precompiled.db.path=/var/lib/gcj-4.2/classmap.db
-Dgnu.gcj.runtime.VMClassLoader.library_control=never
-Dosgi.locking=none
-jar /usr/lib/eclipse/startup.jar

After uninstalling, reinstalling, changing which JVM I was using, uninstalling, reinstalling, googling, yahooing, and binging, I finally found this post over at Debian Help that instructed me to first install XULRunner. With the addition of this simple step, everything suddenly worked great.

The strange part about the whole thing is that Eclipse doesn’t install XULRunner as a dependency, and the Wikipedia article about XULRunner doesn’t mention Eclipse anywhere. I don’t really understand their relationship, aside from the fact that Eclipse supports plugins that may or may not be written on top of XULRunner.

Regardless of their strange and undocumented relationship, the Eclipse/XULRunner combo seem to work perfectly, allowing me to create Java, C/C++, and Plugin projects out of the box. Next steps include adding plugins for Subversion, Python, and PHP.