Follow Techotopia on Twitter

On-line Guides
All Guides
eBook Store
iOS / Android
Linux for Beginners
Office Productivity
Linux Installation
Linux Security
Linux Utilities
Linux Virtualization
Linux Kernel
System/Network Admin
Scripting Languages
Development Tools
Web Development
GUI Toolkits/Desktop
Mail Systems
Eclipse Documentation

How To Guides
General System Admin
Linux Security
Linux Filesystems
Web Servers
Graphics & Desktop
PC Hardware
Problem Solutions
Privacy Policy




Eclipse Java ME (J2ME) Developer Guide
Previous Page Home Next Page

Builder Reference

Building and packaging requires a complex set of steps. Within MTJ there are a number of different ways to launch builds and different types of outputs. This page provides some insight into the way that MTJ handles these different types of builds. This is advanced reference information and should not be necessary for standard use of MTJ.

Directory Structure

  • /project
    • /.mtj.tmp
      • /emulation
        • project.jar
        • project.jad
      • /verified
        • /classes
        • /libs
  • /deployed
    • project.jar
    • project.jad

Contents of the /.mtj.tmp folder are internal and not meant to be manipulated or altered. The project JAR and JAD in the /.mtj.tmp/emulation folder is used when executing the emulator. This JAR/JAD is kept up to date incrementally by the builder.

NOTE: The ability to configure the verified folder name is no longer supported.

Build Types

Clean Build

  1. Clears all contents from /.mtj.tmp
  2. Eclipse will then launch a normal incremental build

Incremental Build

  1. Preprocessor (if configured) runs on source file
  2. Eclipse Java compiler runs on source file
  3. Preverifier is run on source file
  4. /.mtj.tmp/runtime/project.jar is incrementally updated
  5. /.mtj.tmp/runtime/project.jad is updated

Create Package

  1. Update JAD version if configured in preferences
  2. Clean project
  3. Clears all contents from /deployed
  4. Build project via Incremental Build
  5. Copy JAR to /deployed folder
  6. Write /deployed/project.jad

Create Package

  1. Update JAD version if configured in preferences
  2. Clean project
  3. Clears all contents from /deployed
  4. Build project via Incremental Build
  5. Obfuscate /.mtj.tmp/runtime/project.jar into /deployed/project_obf.jar
  6. Preverify /deployed/project_obf.jar into /deployed/project.jar
  7. Write /deployed/project.jad

Build Debugging

Controlling Build Logging

Logging of the build process can be enabled and controlled via a Java System property. See this for further information on how to set a System property. Build logging information is configured using the "" system property. The property supports a comma-separated list of logging items that may be enabled. The available options are:

  • obfuscationOutput
    Logs the standard error and output streams of the Proguard obfuscator.
  • preprocessorTrace
    Logs a trace of the preprocessor builder.
  • preverifierOutput
    Logs the standard error and output streams of the external preverifier.
  • preverifierTrace
    Logs a trace of the preverification builder.
  • all
    Turns on all of the available logging options.

For example:


The result of this logging will be written to the MTJ Build Console described below.

Build Output Console

Due to the potentially large amount of data that can be output by the build logging, the MTJ Build Console is being introduced. It should be noted that this is considered to be an advanced troubleshooting tool and is not really intended for average users. With that said, it is an important tool in collecting information when something goes wrong during the build.

The console must be explicitly launched from the Eclipse Console View, as shown below.

The console will not be opened automatically when logging is enabled. It must be explicitly opened as well as having the appropriate logging enabled using the "" System property. This is so that unwanted logging will not occur and cause performance problems. Once the console has been opened and build logging enabled, the results will then be displayed in the console. All of the standard console operations work against this console, including the ability to copy/paste text as well as the ability to clear the text of the console.

  Published under the terms of the Eclipse Public License Version 1.0 ("EPL") Design by Interspire