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/");