This repository contains the source code of the openLCA application. openLCA is a Java application that runs on the Eclipse Rich Client Platform (Eclipse RCP). This project depends on the olca-modules and olca-update projects which are plain Maven projects that contain the core functionalities (e.g. the model, database access, calculations, and data exchange) and update logic for databases.
This repository has the following sub-projects:
- olca-app: contains the source code of the openLCA RCP application.
- olca-app-build: contains the build scripts for compiling openLCA and creating the installers for Windows, Linux, and MacOS.
- olca-app-html: contains the source code for the HTML views in openLCA (like the start page or the report views).
- olca-app-runtime: contains the build scripts for creating the Eclipse RCP runtime for openLCA.
See also the README files that are contained in these sub-projects.
Building from source
- Git (optional)
- a Java Development Kit 8
- the Eclipse package for RCP developers
- Node.js and Gulp (for building the HTML5 user interface components)
When you have these tools installed you can build the application from source via the following steps:
Install the openLCA core and update modules
The core and update modules contain the application logic that is independent
from the user interface and can be also used in other applications. These
modules are plain Maven projects and can be installed via
mvn install. See the
olca-updates repositories for more
Get the source code of the application
We recommend that to use Git to manage the source code but you can also download the source code as a zip file. Create a development directory (the path should not contain whitespaces):
mkdir olca cd olca
and get the source code:
git clone https://github.com/GreenDelta/olca-app.git
Your development directory should now look like this:
olca-app .git olca-app olca-app-build olca-app-html olca-app-runtime ...
Building the HTML pages
To build the HTML pages of the user interface navigate to the olca-app-html folder:
Then install the Node.js modules via npm (npm is a package manager that comes with your Node.js installation):
This will create a folder
olca-app-html/node_modules with the dependent
modules. After this, you can create the html package via Gulp:
This will build and package the HTML files to
Prepare the Eclipse workspace
Download the current Eclipse package for RCP and RAP developers (to have everything together you can extract it into your development directory). Create a workspace directory in your development directory (e.g. under the eclipse folder to have a clean structure):
eclipse ... workspace olca-app .git olca-app olca-app-build olca-app-html olca-app-runtime ...
After this, open Eclipse and select the created workspace directory. Import the
projects into Eclipse via
Import > General > Existing Projects into Workspace
olca/olca-app directory). You should now see the
olca-app-runtime projects in your Eclipse workspace.
Loading the target platform and
platform.target in the
olca-app project contains the definition of
the target platform
of the openLCA RCP application. Just open the file with the
and click on
Set as target platform on the top right of the editor.
This will download the resources of the target platform into your local
workspace and, thus, may take a while. Unfortunately, setting up and
configuring Eclipse can be quite challenging. If you get errors like
Unable locate installable unit in target definition,
Copy the Maven modules
Go back to the command line and navigate to the
This will copy the installed openLCA core modules and dependencies (see above)
to the folder
Add the JavaFX-SWT bridge
Since version 1.6, openLCA uses JavaFX components (e.g. the JavaFX WebView or
charting components). The Java runtime contains a JavaFX-SWT bridge with which
it is possible to embed JavaFX components in SWT applications. This bridge is
contained in the library
jfxswt.jar which you need to add to the Java
runtime in Eclipse.
To do this, open the preferences for the installed Java runtimes
Window > Preferences > Java > Installed JREs, select the enabled JRE and
Edit. In the upcoming dialog, click on
Add External JARs and select
jre/lib/jfxswt.jar library from the respective Java installation.
Test the application
Refresh your Eclipse workspace (select all and press
F5). Open the file
olca-app/openLCA.product within Eclipse and click
on the run icon. openLCA should now start.
If you want to build an installable product, see the description in the olca-app-build sub-project or simply use the Eclipse export wizard (Export/Eclipse product).
Build the database templates
The openLCA application contains database templates that are used when the user
creates a new database (empty, with units, or with all reference data). There
is a Maven project
olca-refdata that creates these database templates and
copies them to the
olca-app/olca-app/db_templates folder from which openLCA
loads these templates. To build the templates, navigate to the refdata project
and run the build:
cd olca-app/olca-refdata mvn package
Building with Eclipse Oxygen and Julia libraries
For Windows, it is now possible to build openLCA so that it runs on the Eclipse Oxygen platform and uses some math libraries for high performance computing from the Julia project. This is currently tested with Eclipse Oxygen 3A package for RCP/RAP development.
The initial steps for this build are the same as before:
- install/update the openLCA core and update modules
- build the HTML pages
- build the database templates
The current master branch of the
olca-app project contains now a new target
olca-app/olca-app/platform.target. When you open this
file the first time with the Eclipse
Target Editor, Eclipse will
download the resources of this target platform into your workspace. You may
get errors like
Unable locate installable unit in target definition when
Eclipse fails to download some resources or the like (for possible fixes, see
But when it is downloaded it should work quite stable. Click on the
Set as Target Platform link in the upper right corner of the
to use this as the target platform.
To build the Windows version, we currently use the standard PDE Export wizard.
Click on the
olca-app project and then on
Export... from the context menu.
Plug-in Development > Eclipse Product from the export wizard and
select the following options in the export dialog:
/olca-app/openLCA.product(should be the default)
- Root directory:
- Synchronize before exporting: yes [x]
- Destination directory: choose the
olca-app-build/buildfolder of this project
- Generate p2 repository: no [ ] (would be just overhead)
- Export for multiple platforms: yes [x]
- (take the defaults for the others)
In the next page, select the platforms for which you want to build the product.
However, only the Windows
x86_64 version is currently fully supported. After
the export, you need to run the package script
pack10.py to copy resources
like the Java runtime, Julia libraries, etc. to the application folder and to
create the installers. The layout of the build folder (with tools and runtime
libraries) is the same as for the old build (see the
but additionally contains a
julia folder which contains the julia libraries.
The distribution packages for Linux and macOS are still build as before. There
olca_platform branch which contains the build configuration for the old
target platform. Switch to this branch and merge the current master into this
branch and the old build should work.
Unless stated otherwise, all source code of the openLCA project is licensed under the Mozilla Public License, v. 2.0. Please see the LICENSE.txt file in the root directory of the source code.