Java MVC Implementation
I'm only going to scratch the surface here, and leave more seasoned java reviewers take a stab at this one, for I've never written a line of java-8 - but some concepts transcend language barriers.

Naming in particular.

Signatures can, and should talk.


public void addView(String viewString, View view) {
    views.put(viewString, view);
}

public View getView(String viewString) {
    return views.get(viewString);
}



Take this line:


public void addView(String viewString, View view) {



The name viewString is pretty confusing. One has to look at how it's implemented to go "oh, that's a key for a hashmap!". How about this instead?

public void addView(String key, View view) {


Now there's no ambiguity whatsoever, and getView(String key) becomes crystal-clear.

Consistency is King

This is just a minor thing, but I'd prefer consistency in the choice of verbs used to describe an action. For example, if a form is a view and a form gets shown, then a view should be shown too, not opened:


public void openView(String viewString) {
    getView(viewString).showForm();
}



Would be

public void showView(String viewString) {
    getView(viewString).showForm();
}


Same with commands - if a command executes, I wouldn't want the verb run to refer to the same thing, I'd prefer it be consistent:


public void runControllerCommand(String commandString) {
    commands.get(commandString).execute();
}



Would be:

public void executeControllerCommand(String commandString) {
    commands.get(commandString).execute();
}


Single-letter identifiers

Don't. This:


ModelContainer(Controllerv2 c) {
    this.controls = c;
}



Is pretty darn confusing. Does c stand for controller, or for controls? Actually there seems to be something fishy going on here, "controls" is a nice name for a collection of controls, but you have it as ..a Controllerv2 (is there a Controllerv3? Avoid "versioning" classes like this, especially in the early development stages). Notice the puzzled expression in my face? ;)

Anyway, that c would probably be better of as controller.



Constructor arguments

I like this part - final makes your intent very clear:


private final Map&lt;String, Model&gt; models = new HashMap&lt;&gt;();
private final Map&lt;String, ModelCommand&gt; commands = new HashMap&lt;&gt;();
private final Controllerv2 controls;

ModelContainer(Controllerv2 c) {
    this.controls = c;
}



I'd push it a step further though, and provide a way to initialize the class with models and commands, like this:

private final Map&lt;String, Model&gt; models = new HashMap&lt;&gt;();
private final Map&lt;String, ModelCommand&gt; commands = new HashMap&lt;&gt;();
private final Controllerv2 controller;

ModelContainer(Controllerv2 controller, Map&lt;String, Model&gt; models, Map&lt;String, ModelCommand&gt; commands) {
    this.controller = controller;
    this.commands = commands;
    this.models = models;
}


And now the client code doesn't need to call AddCommand 20 times when there's that many commands to add.



Indentation

Your indentation is a little off, too. Whenever a code file ends like this:

}
}


You know something's gone wrong. I'd blame it on the Java-style braces but that's just the c# mug talking, just select all but the signature and last closing brace, and give that Tab button some lovin' ;)