String classpath=buildClasspath(true,File.pathSeparator); args.add("-classpath"); args.add(classpath);
String classpath=buildClasspath(false); if(classpath!=null) { args.add("-classpath"); args.add(classpath); }
    protected void readSFAttributes() throws SmartFrogException, RemoteException {        Vector args=new Vector();        //get classname and classpath and verify that one is defined        String classname=null;        String jar=null;        classname=sfResolve(varClassname,classname,false);        jar= sfResolve(varJarFile, jar, false);        if(jar==null && classname==null ) {            throw new SmartFrogInitException("One of "+varClassname+" and "+varJarFile+" must be supplied");        }        Vector environment = (Vector) sfResolve(varEnvironment, (Vector) null, false);        Vector flatEnv = flatten(environment, null, "=", null);        Vector jvmArgs=(Vector) sfResolve(varJVMArgs,(Vector)null,false);        Vector sysProperties=(Vector)sfResolve(varSysProperties, (Vector) null, false);        Vector flatSysProperties = flatten(sysProperties, "-D", "=", "");        Boolean assertions=(Boolean) sfResolve(varAssertions,(Boolean)null,false);        Boolean sysAssertions = (Boolean) sfResolve(varSystemAssertions, (Boolean) null, false);        Vector arguments=sfResolve(varAssertions, (Vector) null, false);        addArgs(args, flatSysProperties);        addArgs(args, jvmArgs);        //assertions        if(assertions!=null && assertions.booleanValue()) {            args.add("-ea:...");        }        if (sysAssertions != null && sysAssertions.booleanValue()) {            args.add("-esa");        }        //classpath setup        String classpath=buildClasspath(true,File.pathSeparator);        args.add("-classpath");        args.add(classpath);        //endorsed dirs        String endorsedDirs=buildEndorsedDirs(File.pathSeparator);        if(endorsedDirs!=null) {            args.add("-Djava.endorsed.dirs="+endorsedDirs);        }        //set the classname or jar to run        if(classname!=null) {            args.add(classname);        } else {            args.add("-jar");            args.add(jar);        }        //add any command arguments        addArgs(args,arguments);        //now patch our attributes, ready for our parent class        sfReplaceAttribute(varEnvProp, flatEnv);        sfReplaceAttribute(varShellArguments, args);        //and verify that the shell command is not empty        String javacmd=sfResolve(varShellCommand,(String)null,true);        super.readSFAttributes();    }