我有以下目录结构:
-com
-laicode
-class1
-QuickSort.java
-common
-someclasses
-test
-class1
-QuickSortTests.java
我想在QuickSort
中的common
包中导入QuickSortTests
个类和类。因此QuickSort.java
中的代码如下所示:
package com.test.class1;
import java.util.Arrays;
import com.laicode.common.*;
import com.laicode.class1.QuickSort;
class QuickSortTests {
public static void main(String[] args) {
int[] array0 = null;
QuickSort.quickSort(array0);
System.out.println(Arrays.toString(array0));
int[] array1 = new int[0];
QuickSort.quickSort(array1);
...
当我使用QuickSortTests.java
在cmd中编译javac QuickSortTests.java
时,会抛出错误说:
QuickSortTests.java:4: error: package laicode.common does not exist
import laicode.common.*;
QuickSortTests.java:5: error: package laicode.class1 does not exist
import laicode.class1.QuickSort;
但是在Intellij中,QuickSortTests
可以毫无错误地运行。
答案 0 :(得分:0)
IntelliJ已经知道您的源布局,甚至知道哪些类在哪些文件中定义。 javac
没有。有多种方法可以解决问题,部分取决于您希望编译的类文件的位置,但最简单的方法可能是将源树的根目录作为工作目录,然后运行javac
从那里:
javac com/test/class1/QuickSortTests.java
(或者在Windows上使用反斜杠而不是正斜杠。)
注意大小写:我假设您的类名的大小写与它们所在的文件名称之间的不匹配是您的问题中的错误。如果这些确实在您的来源中存在不同意见,那么您应该解决这个差异。