3
자이 썬 스크립트가 자바 코드로 해석되는 커다란 자바 프로젝트에서 일하고있다. 필자가 아직 알아 내지 못한 이유 때문에 함수, 클래스, 변수가 모두 전역 변수로 선언되지 않는 한 자이 썬 스크립트에서는 아무 것도 작동하지 않는다. 이 문제를 추적하기 위해이 문제를 좁혀 냈습니다. 아래는 :간단한 자이 썬 스크립트가 자바에서 실행되지 않는다.
파이썬 스크립트 위에서 주어진 자이 썬 스크립트를 시도하고 해석하는 자이 썬 2.2 방법을 사용 java -jar jython.jar script.py
Interpreter.java
으로 시작하면 잘 실행되는 자이 썬 스크립트 script.py
: #global aFunction # uncommenting this makes the script work from Java
def main():
aFunction()
def aFunction():
print 'aFunction() called'
main()
자바 클래스 :
,536,import java.io.File;
import org.python.core.PyException;
import org.python.core.PyStringMap;
import org.python.core.PySystemState;
public class Interpreter {
public static void main(final String[] args) {
final PyStringMap localNameSpace = new PyStringMap();
final PyStringMap globalNameSpace = new PyStringMap();
final File scriptFile = new File("../../jython/script.py");
PySystemState.initialize();
try {
org.python.core.__builtin__.execfile(scriptFile.getAbsolutePath(), globalNameSpace, localNameSpace);
} catch (final PyException pyException) {
pyException.printStackTrace();
}
}
}
다음은 Java 클래스를 실행할 때의 오류입니다.
Traceback (innermost last):
File "/opt/coflight/axel/workspace/essais/../../jython/script.py", line 12, in ?
File "/opt/coflight/axel/workspace/essais/../../jython/script.py", line 5, in main
NameError: aFunction
인터프리터가 자이 썬 스크립트를 실행할 수 있도록 자바 클래스를 수정하는 방법에 대한 아이디어가 있으십니까? 감사 !
그래! 내 응용 프로그램이'__builtin__ '호출 대신 이것을 사용하기로되어 있었다고 생각합니다. – Axel
스칼라에서 같은 작업을 수행 할 수있는 옵션이 있습니까? –
@EdwinVivekN : 무슨 뜻인지 잘 모르겠습니다. 도움이 필요하면 새로운 질문을해야합니다. – mzjn