If you would replace every JNLP-Class reference with a fully qualified name, then the application should work even if it is being started using java locally.

I'd do something like this:

```java
try {
  final javax.jnlp.BasicService basicService = (javax.jnlp.BasicService) javax.jnlp.ServiceManager.lookup("javax.jnlp.BasicService");
} catch (Exception e) {
  LOG.error("Failed to determine CodeBase. Reason: " + e.getMessage());
  // adding the exception as debug information.
  LOG.debug(e);
}
```
As this fragment seems to be used multiple times, what about extracting it into some kind of utilty-class that does cache the value?