Java 无法找到或加载主类-在异常情况下
好吧,我知道这是一个非常常见、非常简单的问题,但我的问题有着非常不寻常的情况。(我无法在互联网上的其他地方找到解决方案)因此,我有一些源代码,我正在通过Java 无法找到或加载主类-在异常情况下,java,compilation,runtime,java-compiler-api,Java,Compilation,Runtime,Java Compiler Api,好吧,我知道这是一个非常常见、非常简单的问题,但我的问题有着非常不寻常的情况。(我无法在互联网上的其他地方找到解决方案)因此,我有一些源代码,我正在通过JavaCompiler以编程方式编译。然后,我尝试在运行时执行编译后的代码。(也就是说,Runtime.getRuntime().exec(String[]))但是,当我尝试执行所述代码时,我get无法找到或加载主类。相关的源代码遵循以下基本模型: package compiledCode; public class Compiled {
JavaCompiler
以编程方式编译。然后,我尝试在运行时执行编译后的代码。(也就是说,Runtime.getRuntime().exec(String[])
)但是,当我尝试执行所述代码时,我get无法找到或加载主类。
相关的源代码遵循以下基本模型:
package compiledCode;
public class Compiled
{
public Compiled(){}
public static void main(String[] args)
{
System.out.println("Hello!! ;D");
}
}
即使是那些代码也不会执行。我仍然会犯同样的错误。提前感谢您的帮助。:)
*编辑:
具体步骤如下:
JavaCompiler
API。)Runtime.getRuntime.exec(新字符串[]{“java”,[location of.class file]})代码>来执行它
ClassFileHelper.toClass(src, "C:/Users/Steven/Desktop/ /Eclipse/Workspace/RoccedGame/ServiceCoder", "ServiceCoder");
System.out.println("java "+src.getAbsolutePath().substring(0,src.getAbsolutePath().lastIndexOf(".java"))+".class");
final Process p = Runtime.getRuntime().exec(new String[]{"java",src.getAbsolutePath().substring(0,src.getAbsolutePath().lastIndexOf(".java"))+".class"});
第三行中的字符串操作有点混乱,但我已经进行了三次检查,以确保它能正常工作——确实如此。如果您想查看。
toClass()
位的代码,请转到 您没有将正确的参数传递给Runtime.exec()
传递已编译类文件的实际位置。但是,您应该传递一个类名,如果您的类在包中,您还需要将包层次结构的根作为-classpath
参数传递
JDK文档中描述了这一点:您确定吗??它在我的电脑上运行。:/@steven fontaine您能否向其他人提供您试图运行和编译代码的确切步骤…您是否阅读了问题中关于编程编译的部分?如果您能够发布一个演示问题的自包含程序,以及确切的错误消息,这将非常有帮助,以及将精确参数打印输出到
Runtime.exec()
。因为事实上,您已经给出了您认为步骤是什么的描述,但是步骤#3中的参数没有多大意义。@Steven您是否尝试过从命令行运行java compiledCode.Compiled
?