Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 包不存在,在运行时编译时找不到符号_Java_Runtime Compilation - Fatal编程技术网

Java 包不存在,在运行时编译时找不到符号

Java 包不存在,在运行时编译时找不到符号,java,runtime-compilation,Java,Runtime Compilation,包不存在错误,即使包已连接以进行运行时编译。 这是代码 JavaSourceCompiler javaSourceCompiler = new JavaSourceCompilerImpl(); JavaSourceCompiler.CompilationUnit compilationUnit = javaSourceCompiler.createCompilationUnit(); compilationUnit.addClas

包不存在错误,即使包已连接以进行运行时编译。 这是代码

JavaSourceCompiler javaSourceCompiler = new JavaSourceCompilerImpl();
                JavaSourceCompiler.CompilationUnit compilationUnit = javaSourceCompiler.createCompilationUnit();
                compilationUnit.addClassPathEntry("G:/project/eclispe/www.spade.com/src/com/ibm/database/DbConnection.java");
                compilationUnit.addJavaSource(myClass, sourcecode);
                compilationUnit.addClassPathEntry("/src/com/ibm/database/DbConnection.java");
                System.out.println(compilationUnit.getClassPathsEntries());
                ClassLoader classLoader = javaSourceCompiler.compile(compilationUnit);

                Class<?> FMClass = classLoader.loadClass(myClass);

                Object FMObj= FMClass.newInstance();

                Method forecast = FMClass.getMethod("Forecast",new Class[] {String.class,String.class,String.class,int[].class});
                System.out.println("Forecast method return type is:"+forecast.getReturnType());
                f=(Integer)forecast.invoke(FMObj, new Object[] {partcode,sercid,fm,a});

提前感谢

这是一个很长的过程,但我在compilationUnit.addClassPathEntry中看到了可能的打字错误。你有eclispe,它可能应该是eclipse


但正如我所说,这是一个长期的机会,也许还有另一个问题。但是值得一试:)

添加类路径条目的方式似乎有问题:

替换:

 compilationUnit.addClassPathEntry("G:/project/eclispe/www.spade.com/src/com/ibm/database/DbConnection.java");


当您试图添加同一类时,请删除另一个条目。希望这有帮助。

谢谢Sanjeev,它真的帮助很大。@user3313074欢迎您。享受编码乐趣:)
 compilationUnit.addClassPathEntry("G:/project/eclispe/www.spade.com/src/com/ibm/database/DbConnection.java");
compilationUnit.addClassPathEntry("G:/project/eclipse/www.spade.com/src/");