Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.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
JavaCompiler类路径_Java_Compiler Construction_Path - Fatal编程技术网

JavaCompiler类路径

JavaCompiler类路径,java,compiler-construction,path,Java,Compiler Construction,Path,我尝试使用JavaCompiler来编译源代码 class A{int i;}; class B extends A{i = 5;}; 问题是即使它们在同一个文件夹中,当编译类B时,JavaCompiler仍然找不到类A 所以,我想知道问题是我没有将文件夹的路径添加到类路径 我不知道如何在java代码中实现它,所以没有尝试过 谢谢您的帮助。您需要为编译任务设置类路径 请看下面的答案: 将类路径扩展到当前目录 您可以通过-classpath选项或classpath变量来实现这一点 -cla

我尝试使用JavaCompiler来编译源代码

class A{int i;}; 
class B extends A{i = 5;};
问题是即使它们在同一个文件夹中,当编译类B时,JavaCompiler仍然找不到类A

所以,我想知道问题是我没有将文件夹的路径添加到类路径

我不知道如何在java代码中实现它,所以没有尝试过


谢谢您的帮助。

您需要为编译任务设置类路径

请看下面的答案:


将类路径扩展到当前目录

您可以通过-classpath选项或classpath变量来实现这一点

-claspath=. 


另一种观点是,使用ASM、JavaAssist、SERP或任何其他工具等著名工具直接生成字节码。。。。。 这可能是避免以下情况的一个非常好的方法: -路径问题 -为了更好地控制流程(如果您有javac错误,您将不得不解析流以将thme提升到应用程序中) -提高整个过程的性能

但它增加了一些复杂性。。。
像通常一样,这是一种权衡

他可能指的是类
JavaCompiler
。嗯,不确定,但可能是因为您的代码有错误。您不会编写类似于
类B扩展A{i=5;}
,而是使用init块(或者更好的构造函数)来设置成员值:
类B扩展A{i=5;}“我不知道用java代码怎么做,所以没试过。”这并不是不阅读优秀手册的借口-1我打错了。。。aioobe给出了正确的解决方案。我应该向java编译器添加-cp参数。
CLASSPATH=.