applyPTF.sh script fails with java.lang.NoClassDefFoundError:,org.eclipse.emf.ecore.EFactory
The applyPTF.sh script fails with java.lang.NoClassDefFoundError:,org.eclipse.emf.ecore.EFactory.
Closer inspection of the applyPTF logs will show the following error:
Caused by: java.lang.IllegalStateException: The platform metadata area could not be written: /<partial_path>/.metadata. By default the platform writes its content under the current working directory when the platform is launched. Use the -data parameter to specify a different content area for the platform.
Where partial_path is a partial path to the user ID home directory.
A possible cause to this problem is that the user ID home directory contains a character that Eclipse considers illegal (i.e. any character that is not allowed in a URL). This is a known limitation within Eclipse and is documented under Eclipse bugs 3109 and 17281.
Resolving the problem
A manual and temporary workaround for this problem is to manually create the 'partial_path' that is seen in the error message. A better resolution is to change the user ID home directory to one that does not contain any of the Eclipse illegal characters (:%#<>").