首页 > 编程知识 正文

idea找不到符号,verqueryvaluea找不到符号

时间:2023-05-05 23:59:39 阅读:184903 作者:2363

问题场景:两个java文件A,B,在同一个目录D,  A需要用到B的类, 用cmd进入D目录编译A时报的错。

遇到这个问题的比较多, 我就总结下吧:

       1、环境变量classpath没有配好   配好后, javac A B  javac B A或者javac *.java就行

                  说没有配好有两个情况: 一是  点前面有空格啥的     二是没有配点 

                 当然不配classpath    javac   -classpath 指定目录也可以

      2、package 定义出现了问题

            文件的开头定义了package, 把他去掉就好了

 

拓展下吧: 我看别的博客里有对不同目录下javac怎么编译的问题。 我就研究了下, 终于弄出来了

 package d1.d2  A文件  第一行

package d3.d4   B文件  第一行

d1目录和d3目录都在src目录下

             那么A文件应该放在src/d1/d2目录下  B文件同理放在src/d3/d4目录下 ,B文件引用A文件中的类,因此B文件 需要导入A文件,因此B文件加上   import d1.d2.A

     打开命令窗口,进入src目录, 输入javac  d1/d2/*.java  d3/d4/*.java  编译成功。 然后在src/d1/d2/和src/d3/d4下可以看到生成的class文件

    如果不想把生成的class文件放在src里面,而是放在与src同级的目录下, 那么操作类似:

       第一步: 进入src的上级目录(此时该目录下先建好build目录)

      第二部:javac -d build  src/d1/d2/*.java  src/d3/d4/*.java

  

      javac  的 -sourcepath参数介绍, 他指定项目的根目录, 也就是我的例子里面的src目录, 前面两个例子都没指定都可以成功,说明javac自己能找到,应该是根据package d1.d2这种,把d1的上级目录当做了src目录。 值得注意的一点是,虽然项目路径不同,通过 加参数-sourcepath  src1;src2 这种方式也能编译成功; 但是不能运行,报错无法加载主类, 这种情况我就不继续研究了, 我不认为会出现一个项目会用到另外一个项目的文件。 就这样吧

 

 

 

 

 

     

 

 

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。