gpt4 book ai didi

java - 找不到或加载主类 - 在异常情况下

转载 作者:行者123 更新时间:2023-11-29 05:50:31 27 4
gpt4 key购买 nike

好吧,我知道这是一个非常常见、非常简单的问题,但我遇到的情况却很不寻常。 (我无法在 Internet 上的其他地方找到解决方案的情况。)因此,我有一些源代码,我正在通过 JavaCompiler 以编程方式编译这些源代码。然后我尝试使用 Runtime 执行编译后的代码。 (即 Runtime.getRuntime().exec(String[])。)但是,当我尝试执行上述代码时,我得到 Could not find or load main class. 有问题的源代码遵循这个基本模型:

package compiledCode;
public class Compiled
{
public Compiled(){}
public static void main(String[] args)
{
System.out.println("Hello!! ;D");
}
}

即使该代码也不会执行。我仍然遇到同样的错误。在此先感谢您的帮助。 :)

*编辑:我详细的步骤如下:

  1. 我从上面提到的代码开始,在一个名为 code 的字符串中。然后我创建一个文件对象(在本例中为 Compiled.java。)

  2. 我使用了我的自定义方法,我已经测试并确保它可以编译文件(并可选择从中获取 Class 对象,但由于特定原因,我不能那样做为此。) 到一个.class 文件中。 (使用 JavaCompiler API。)

  3. 然后我使用 Runtime.getRuntime.exec(new String[]{"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"});

第 3 行中的字符串操作有点困惑,但我已经进行了三重检查以确保它有效 - 它确实有效。如果您想查看 .toClass() 位的代码,请转到 here .

最佳答案

您没有将正确的参数传递给 Runtime.exec()

您传递已编译类文件的实际位置。但是,您应该传递一个类名,如果您的类在包中,您还需要将包层次结构的根作为 -classpath 参数传递。

这在 JDK 文档中有描述:http://docs.oracle.com/javase/6/docs/technotes/tools/windows/java.html

关于java - 找不到或加载主类 - 在异常情况下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14059479/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com