You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 33 Next »

HJlib provides support for multiple runtimes. In this article, we will discuss how to set up the JDK8 compatible cooperative runtime.
Instructions on the download and set up of the thread-blocking runtime is available in another article.


Here are the steps for running HJlib on Java 8 using an IDE:

Step 1: Java 8 Installation

You will also need a Java 8 installation on your machine and have your JAVA_HOME and PATH point to the new installation. Java 8 can be downloaded  and installed from the Oracle website.

For e.g., I have the following on my Mac machine's .bash_profile:

  JAVA8_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home
  export JAVA_HOME=${JAVA8_HOME}
  export PATH=$JAVA_HOME/bin:$PATH

On Windows the environment variables have to be set up differently, refer to this stackoverflow question to see how it can be done.

 

Step 2: HJlib JAR File

Download the JDK8 compatible HJlib jar file and save it to a local directory.

 

Step 3: IDE like IntelliJ or Eclipse

HJlib is a simple Java library (jar file) and can be used in any Java project. As such a simple text editor can be used to write programs that use HJlib.

However, we recommend using an IDE like IntelliJ to do the Java development using HJlib in the labs and assignments.

A free version of IntelliJ (Community Edition) can be downloaded and installed from the Jetbrains website.
 

Step 4: Your first project

We show how to set up a simple Maven project with a HJlib HelloWorld program in IntelliJ. Similar steps can be followed for other IDEs like Eclipse.

First, download the helloworld.zip file and unzip it into a directory of your choice (e.g. /Users/shamsimam/projects/comp322-s2015-projects/helloworld).

Next, import this project into IntelliJ using the File -> Import Project menu option.

This should show the following series of popups:

First enable the project view, then right-clicking on the root folder to change the module settings.

We will be using Java 8 lambdas while developing with HJlib, so we need to ensure the language level settings in the project:

Notice, the library dependencies have already been resolved thanks to maven:

Clicking on the plus icon and selecting a Java library allows us to choose the location for the jar file:

Once added, we can click 'Apply' to save our changes.

Ensure that habanero-java-lib has been added as a dependency to the module:

After confirming, click "OK" to save your changes.

We are now ready to write our first HJ application using HJlib.

To create a java file, right click on the 'src' folder and select New -> Java Class.

Use 'HelloWorld' as the name of the class and type in the sample program:

Here is the source code:

import static edu.rice.hj.Module1.*;

public class HelloWorld {
    public static void main(final String[] args) {
launchHabaneroApp(() -> {
            finish(() -> {
                async(() ->
    System.out.println("Hello World - 1")
                );
                async(() ->
    System.out.println("Hello World - 2")
                );
                async(() ->
    System.out.println("Hello World - 3")
                );
            });
        });
    }
}

Now we can run this program by right clicking on the HelloWorld item on the project explorer and clicking run.

Running it for the first time will produce the following error:

Error occurred during initialization of VM
agent library failed to init: instrument

Java agents provide services that allow Java programming language agents to instrument programs running on the JVM. To run HJlib programs under the cooperative runtime we need to configure the JVM to use agents available in the HJlib jar. An agent is started by adding this option to the command-line:

-javaagent:jarpath[=options]

We need to configure this in IntelliJ to be able to successfully run HJlib programs. Below is an image of what the configuration looks like after editing the run configuration:

Now we can run the program by clicking on the green play button.
Running the file on my machine produces the following output for example:

 


 

  • No labels