/** Returns dir where libraries are located */ protected abstract String getLibDir();
public static NativeProcess getJavaProcess(Class<?> clazz, ExecutionEnvironment env, String[] arguments) throws IOException{ NativeProcessBuilder npb = NativeProcessBuilder.newProcessBuilder(env); npb.setCharset(Charset.forName("UTF-8")); // NOI18N npb.setExecutable("java"); //NOI18N List<String> args = new ArrayList<String>(); args.add("-cp"); //NOI18N if (env.isLocal()) { args.add(localAbsPath == null ? "." : localAbsPath); //NOI18N } else { String libDir = HostInfoProvider.getLibDir(env); //NB: should contain trailing '/' if (!libDir.endsWith("/")) { // NOI18N libDir += "/"; // NOI18N } String resource = libDir+relativePath; args.add(resource); } args.add(clazz.getName()); args.addAll(Arrays.asList(arguments)); npb.setArguments(args.toArray(new String[args.size()])); return npb.call(); } }