本帖最后由 wiselight 于 2013-01-12 17:58:43 编辑

解决方案 »

  1.   

    或者你在windowsx下编译好了,再上传到linux server里去呢?
      

  2.   

    源码是动态生成的,根据soap产生的java文件,原来是没有的
      

  3.   

    不知道什么叫做 Main.compile(args)..
    不过你导包的时候写法应该是错误的..除非你用的编译框架能自己替换
    Linux下面java -cp后面的包名是用:分隔的,Windows才是用;
    我估计-classpath后面应该也是,具体你可以试试
      

  4.   

    全限定是
    public int com.sun.tools.javac.Main.compile(String[] args)不排除在linux下不受支持,可以好好查一下
      

  5.   

    以下代码是以前使用的
    编译Java程序:
    import java.io.FileNotFoundException;
    import java.io.PrintWriter;import com.sun.tools.javac.Main;public class Test {
        public static void main(String[] argv) throws FileNotFoundException {
            PrintWriter writer = new PrintWriter("result.txt");
            String[] options = { "/Users/Biao/Desktop/FilteredJList.java" };
            Main.compile(options, writer);
        }
    }
    执行Java程序:
    // Process proc = Runtime.getRuntime().exec(String.format("java %s", "FilteredJList"));
        private void run(String directory, String className, String[] args) {
            try {
                File classLoaderDirectory = new File(directory);
                URL url = classLoaderDirectory.toURL();
                URL[] urls = new URL[] { url };
                ClassLoader loader = new URLClassLoader(urls);            Class clazz = loader.loadClass(className);            Method mainMethod = clazz.getMethod("main", String[].class);
                // mainMethod.invoke(null, new Object[] { new String[] { /* args */}
                // });
                mainMethod.invoke(null, new Object[] { args });
            } catch (Exception e) {
                e.printStackTrace();
            }
        }