2012-05-02 7 views
1

Java에서 콘솔에서 메소드를 호출 할 수있는 방법이 있습니까?Java에서 콘솔에서 메소드를 호출하는 방법이 있습니까?

입력 파일의 이름을 얻기 위해 args 배열 (예 : args[0])을 사용할 수 있다는 것을 알고 있지만 Java가 콘솔에서 메소드 호출을 허용하는지 여부는 알 수 없습니다.

+0

이것은 분명하지 않습니다. 콘솔에서 int foo (float [] x, Bar b); 메소드를 호출하는 것은 무엇을 의미할까요? –

답변

3

음, 리플렉션을 사용하여 호출하려는 메서드의 이름을 프로그램의 인수 중 하나로 전달한 다음이를 반사 식으로 호출 할 수 있습니다.

정말하고 싶은 일에 따라과 같은 것을 고려하면 Beanshell 콘솔에서 Java와보다 쉽게 ​​상호 작용할 수 있습니다. 단, 질문은 "콘솔에서 Java를 사용하는 방법은 무엇입니까? " 이 방법을 프로그래밍 방식으로 수행하는 방법이 아닙니다.

print(eval("Math.max(1,2)")); 

을 그리고 내 콘솔에 2를 얻을 것이다 :

다음과 같은 예를 들어,으로 Beanshell 콘솔에서 내가 뭔가를 할 수 있습니다.

beanshell.jar을 응용 프로그램 클래스 경로에 추가하고 프로그램 방식으로 eval 메서드를 사용할 수도 있습니다.

+0

나는 반사에 대해 생각하고 있었지만, 많은 방법을 무작위로 하나씩 호출하기를 원할 때 특히 많은 시간을 필요로합니다. – FranXh

+0

@ User1181847 얼마나 많은 시간이 소요됩니까? 당신의 주장에 관해서는 모두 친척입니다. –

0

명령 줄에서 메소드 실행을 트리거하고 싶습니까? 아니면 백그라운드에서 실행중인 다른 것이 있습니까?

다른 것이 있으면 스레드에 대해 생각해 봐야합니다. 그렇지 않으면 응용 프로그램이 명령 줄에서 IO를 기다리는 동안 차단 될 것이기 때문입니다.

얼마나 많은 메소드가 호출되고 얼마나 동적이되고 싶은지에 따라 ... 리플렉션을 사용할 수 있습니다 (클래스 이름과 메소드 이름을 매개 변수로 사용하여 실행).

관련 문제