패키지 폴더 내부에서 스칼라 파일을 컴파일하려고합니다. 그래서 내가 세 개의 파일, Patient.scala
, PatientMonitor.scala
및 VitalSigns.scala
을 가지고, 그들은 모두 다음 경로 여기 gasguru/patient/
명령 줄에서 패키지 폴더 내의 스칼라 파일 컴파일
에있는 내 파일 VitalSigns.scala
// /gasguru/patient/VitalSigns.scala
package gasguru.patient
class VitalSigns() {
var heartRate = 0;
}
내가 다음 줄에 컴파일 : scalac -d ../.. VitalSigns.scala
이 VitalSigns.class
파일이 현재 내가있는 디렉토리와 동일한 디렉토리에 생성됩니다.
이제 컴파일하려고하면 Patient.scala
ntains이 :
// /gasguru/patient/Patient.scala
import gasguru.patient.VitalSigns;
package gasguru.patient {
class Patient (val firstName:String, val lastName:String) {
val vitalSigns = new VitalSigns();
}
}
을 나는 시도하고이 다음 라인을 컴파일하는 경우 : 나는 VitalSigns.class
이 같은 디렉토리 안에있는 경우
Patient.scala:2: error: VitalSigns is not a member of gasguru.patient
import gasguru.patient.VitalSigns;
^
error: error while loading VitalSigns, Missing dependency 'class gasguru.patient.VitalSigns', required by ./VitalSigns.class
Patient.scala:6: error: VitalSigns does not have a constructor
val vitalSigns = new VitalSigns();
^
three errors found
가 왜이 오류가 무엇입니까 다음과 같은 오류를 얻을 scalac -d ../.. Patient.scala
을 파일을 컴파일하는 위치는? 가져 오기가 충분하지 않아야합니까?
감사합니다.
편집 : 그것은 클래스 파일을 검색하려고 있도록
[email protected]:~/GasGuru/gasguru/patient$ ls
exceptions Patient.scala VitalSigns.scala
PatientMonitor.scala VitalSigns.class
그래서 혼란 스럽네요. 왜 VitalSigns.scala를 컴파일하지 않으면 gasguru.patient 패키지에 넣으시겠습니까? 그 선언이 말하는 것은 아닌가요? 나는 또한 OP에 파일 구조를 추가했다. –
또한 -classpath ../ ..를 추가하려고 시도했는데 다음 오류가 발생했습니다. '오류 : VitalSigns를로드하는 동안 오류가 발생했습니다. 클래스 파일'./VitalSigns.class '에 VitalSigns 클래스가 잘못 포함되어 있습니다. Patient.scala : 2 : 경고 : 가져온 'VitalSigns'는 개체 VitalSigns의 정의에 의해 영구적으로 숨겨 짐 import gasguru.patient.VitalSigns; ^ 하나의 경고가 발생했습니다 오류가 하나 있습니다. ' –
@ Lilluda5 클래스를 올바른 위치에 두지 만,'-d ../ .. '매개 변수를 사용하면 클래스의 기본 디렉토리가 '../ ..', 그것은 당신이있는 같은 디렉토리에서 끝나는 이유입니다. 그러나'-d'는 물건을 어디에 넣어야하는지 말하고 어디서 찾을 수 있는지 말하지 않습니다. –