Home » Software Development » Software Development

About Adrian Matei

Adrian Matei (ama [AT] codingpedia DOT org) is the founder of Podcastpedia.org and Codingpedia.org, computer science engineer, husband, father, curious and passionate about science, computers, software, education, economics, social equity, philosophy.

Software Development

Well, I’ve recently gone to the “silver” side and acquired a MacBook Pro to use it for development when I am not at my PC. By development I mean here mainly Java + Javascript development. So I’ve written this post to remember what I had to install/configure to achieve this goal.

I need to mention that until now I’ve been a user of Windows (XP/7) and Linux (Ubuntu/Mint/Cent OS) operation systems.

At the time of this writing MacBook Pro runs on OS X Yosemite Version 10.10.5. The new version El Capitan was available, but I didn’t do the upgrade first because it had to many bad reviews…


So first things first- installe a Java Development Kit (JDK), which is a software development environment used for developing Java applications and applets. It includes the Java Runtime Environment (JRE), an interpreter/loader (java), a compiler (javac), an archiver (jar), a documentation generator (javadoc) and other tools needed in Java development.

Download the Mac OS X x64 .dmg files version

You can find out where the JDK is installed, by executing the /usr/libexec/java_home -v 1.7 , on the terminal command:

Adrians-MacBook-Pro:ama ama$ /usr/libexec/java_home -v 1.8
Adrians-MacBook-Pro:ama ama$ /usr/libexec/java_home -v 1.7
Adrians-MacBook-Pro:ama ama$

You will need to know this when setting up a project in IntelliJ for example.


JAVA_HOME is just a convention, usually used by Tomcat, other Java EE app servers and build tools such as Maven to find where Java lives.

In Mac OSX 10.5 or later, Apple recommends to set the $JAVA_HOME variable to /usr/libexec/java_home, just export $JAVA_HOME in file ~/.bash_profile or ~/.profile

$ vim .bash_profile 

export JAVA_HOME=$(/usr/libexec/java_home)

$ source .bash_profile

$ echo $JAVA_HOME


With the JAVA_HOME environment variable configure, go to the Apache Maven Downloads website, download the .tar.gz or .zip archive and unpack it in a folder of your choice – I put it under the /opt directory:

tar xzvf apache-maven-3.3.3-bin.tar.gz

It is also recommended to create a symbolic link to the Maven home, so that when let’s say you update your Maven version, you’ll only have to change the symbolic link target:

ln -s /opt/apache-maven-3.3.3 /opt/maven

Then set Maven in the environment variables

vim ~/.bash_profile

Add these lines to .bash_profile

export M2_HOME=/path/to/maven
export M2=$M2_HOME/bin
export PATH=$M2:$PATH

Close the terminal and open a new one. When you try now to get the maven versioning you should get something like the following:

ama$ mvn -version
Apache Maven 3.3.3 (7994120775791599e205a5524ec3e0dfe41d4a06; 2015-04-22T13:57:37+02:00)
Maven home: /opt/maven
Java version: 1.8.0_65, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.10.5", arch: "x86_64", family: "mac"

An alternative is to use Homebrew and execute the following command:

brew install maven


Open a terminal window and type the following command for example:

$ git --version

At the next moment you will be asekd to install Xcode. This is the a complete developer toolset for building apps that run on Apple TV, Apple Watch, iPhone, iPad, and Mac. It includes the Xcode IDE, simulators, and all the required tools and frameworks to build apps for iOS, watchOS, tvOS, and OS X (it also contains GNU Compiler Collection-gcc).

You can do the above, but if you do not want everything from that package you can install Homebrew (“Homebrew installs the stuff you need that Apple didn’t.”) and run the following commands:

brew install gcc
brew install git

Either way once Git is installed the initial command git –version will bring the installed version:

$ git --version
git version 2.4.9 (Apple Git-60)

If you are working with Github, I recommend you also install the Github Desktop


In the mean time IntelliJ has become my favorite IDE, mainly because you have almost the same feature support when doing front-end development. To install it, go to the download page and follow the installation instructions:


  • Download the idea-15.dmg OS X Disk Image file.
  • Mount it as another disk in your system.
  • Copy IntelliJ IDEA to your Applications folder

Once done you need to get acquainted with key shortcuts for OS X – IntelliJ IDEA Mac OS X Keymap



Node.js® is a JavaScript runtime built on Chrome’s V8 JavaScript engine. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient. Node.js’ package ecosystem, npm, is the largest ecosystem of open source libraries in the world. Recently is a must have tool if you need to do fancier stuff on your front-end part of your application.

Go to https://nodejs.org/ and download the latest version for OS X (x64). Double click on the node-v4.2.2.pkg file (latest stable version at the writing of the post) and follow the installation instructions steps.

When ready open a terminal window and check the version installed to see if it is working:

$ node --version

Terminal window

Set background black

Open Terminal, then go to the Terminal menu -> Preferences, choose the Settings tab and set the Pro theme as the default.

Often used UNIX keys on the German/Swiss keyboard

I bought the Mac Book to use it as developer machine on the go and one of my initial surprises was the missing of some keys a developer/terminal user uses pretty often like []|{}~

Find below a map for these keys:

So here it is, my personal keyboard map reminder for the Mac OS X:

|pipe symbol <alt>7
\\backslash <alt><shift>7 = <alt>/
[left (opening) square bracket <alt>5
]right (closing) square bracket <alt>6
{left (opening) curly bracket <alt>8
}right (closing) curly bracket <alt>9
~Tilde <alt>n followed by the space key
@“At” symbol <alt>g (lowercase G)

How to test everything is working

A smoke test to verify if everything installed is functioning properly “together” is to generate an application with JHipster and push it to a git repository.

JHipster is a Yeoman generator, used to create a Spring Boot + AngularJS project.


  1. Linux/Mac OS X Terminal: make the background black, not white
  2. How to Set $JAVA_HOME environment variable on Mac OS X
  3. Maven installation guide
  4. Mac OS X: often used UNIX keys on the German keyboard

For any suggestions please leave a comment. Thank you.

Do you want to know how to develop your skillset to become a Java Rockstar?

Subscribe to our newsletter to start Rocking right now!

To get you started we give you our best selling eBooks for FREE!

1. JPA Mini Book

2. JVM Troubleshooting Guide

3. JUnit Tutorial for Unit Testing

4. Java Annotations Tutorial

5. Java Interview Questions

6. Spring Interview Questions

7. Android UI Design

and many more ....



  1. I’d recommend you check out http://brew.sh to install various tools like Maven, much easier.

  2. Advice: use Homebrew for all this. Don’t start effing around with downloading stuff.
    Advice: tell IntelliJ to use the maven you have installed.

Leave a Reply

Your email address will not be published. Required fields are marked *


Want to take your Java Skills to the next level?
Grab our programming books for FREE!
  • Save time by leveraging our field-tested solutions to common problems.
  • The books cover a wide range of topics, from JPA and JUnit, to JMeter and Android.
  • Each book comes as a standalone guide (with source code provided), so that you use it as reference.
Last Step ...

Where should we send the free eBooks?

Good Work!
To download the books, please verify your email address by following the instructions found on the email we just sent you.