package com.scheduler.process;
public class Process {
public enum state {
NOT_SUBMITTED, SUBMITTED, BLOCKED, READY, RUNNING, COMPLETED
}
private state currentState;
public state getCurrentState() {
return currentState;
}
public void setCurrentState(state currentState) {
this.currentState = currentState;
}
}
package com.scheduler.machine;
import com.scheduler.process.Process;
import com.scheduler.process.Process.state;
public class Machine {
com.scheduler.process.Process p = new com.scheduler.process.Process();
state s = state.READY; //fails if I don't also explicitly import Process.state
p.setCurrentState(s); //says I need a declarator id after 's'... this is wrong.
p.setCurrentState(state.READY);
}
Изменен пример, чтобы попытаться перейти к проблеме. Я не могу изменить состояние этого кода. Eclipse предлагает импортировать Process.state like
, который был у меня на предыдущем примере, но это тоже не работает. Это позволяет state s = state.READY
, но вызов p.setCurrentState(s);
завершается неудачно, как и p.setCurrentState(state.READY);
Проблема продолжена .... Следуя советам Олега, я попробовал больше перестановок:
package com.scheduler.machine;
import com.scheduler.process.Process;
import com.scheduler.process.Process.*;
public class Machine {
com.scheduler.process.Process p = new com.scheduler.process.Process();
public state s = Process.state.READY;
p.setCurrentState(s);
p.setCurrentState(state.READY);
}
Хорошо. Теперь понятно, что я кандидат на лоботомию.
package com.scheduler.machine;
import com.scheduler.process.Process;
import com.scheduler.process.Process.state;
public class Machine {
public void doStuff(){
com.scheduler.process.Process p = new com.scheduler.process.Process();
state s = state.READY; //fails if I don't also explicitly import Process.state
p.setCurrentState(s); //says I need a declarator id after 's'... this is wrong.
p.setCurrentState(state.READY);
}
}
Мне нужно было иметь метод в классе - но мы все еще что-то упускаем (вероятно, очевидно) здесь. Когда я иду через командную строку и запускаю javac в классе Machine ПОСЛЕ компиляции Process, я все равно получаю следующую ошибку:
mseil@context:/media/MULTIMEDIA/Scratch/Scratch/src/com/scheduler/machine$ javac Machine.java
Machine.java:3: package com.scheduler.process does not exist
import com.scheduler.process.Process;
^
Так что, я думаю, теперь возникает вопрос: что за идиот, который я пропускаю, мешает мне составить это вручную, что затмение делает для меня за сценой?
======
Проблема решена здесь:
Общий код Java компилируется в затмении, но не в командной строке