public Program loadFromCache(String id, String buildArgs) {
        if (tmpFolder == null) {
            return null; //low permissions
        }
        //get file
        File file = new File(tmpFolder, getCleanFileName(id));
        if (!file.exists()) {
            if (LOG.isLoggable(Level.FINE)) {
                LOG.log(Level.FINE, "Cache file {0} does not exist", file.getAbsolutePath());
            }
            return null;
        }
        //load from file
        ByteBuffer bb;
        try {
            byte[] bytes = Files.readAllBytes(file.toPath());
            bb = BufferUtils.createByteBuffer(bytes);
        } catch (IOException ex) {
            LOG.log(Level.FINE, "Unable to read cache file", ex);
            return null;
        }
        //create program
        Program program;
        try {
            program = context.createProgramFromBinary(bb, device);
        } catch (OpenCLException ex) {
            LOG.log(Level.FINE, "Unable to create program from binary", ex);
            return null;
        }
        //build program
        try {
            program.build(buildArgs, device);
        } catch (OpenCLException ex) {
            LOG.log(Level.FINE, "Unable to build program", ex);
            return null;
        }
        //done
        return program;
    }
Loads the program from the cache and builds it against the current device.
You can pass additional build arguments with the parameter {@code buildArgs}.
<p>
The cached program is identified by the specified id. 
This id must be unique, otherwise collisions within the cache occur.
Therefore, the following naming schema is recommended:
{@code id = <full name of the class using the program>.<unique identifier within that class>}.
<p>
If the program can't be loaded, built or any other exception happened,
{@code null} is returned.

@param id the unique identifier of this program
@param buildArgs additional build arguments, can be {@code null}
@return the loaded and built program, or {@code null}
@see #saveToCache(java.lang.String, com.jme3.opencl.Program)
jme3-core/src/main/java/com/jme3/opencl/ProgramCache.java