Java에서 약간의 명령 행 응용 프로그램을 작성했으며이를 위해 새로운 클래스 java.io.Console을 사용하려고했습니다. System.console()을 사용하여이 클래스의 인스턴스를 가져옵니다. 이 호출은 'java -jar MyApp.jar'를 통해 응용 프로그램을 호출하면 작업 콘솔을 반환하지만 ant의 java-task를 통해 응용 프로그램을 실행하면 설정되지 않습니다. 이 호출에 대해 fork가 true이고 spwan false입니다. 이 차이점은 (System.out.print()가 ant에서 잘 작동하는 이유는 무엇입니까?) 개미를 통해 내 앱을 시작하면 어떻게 콘솔을 사용할 수 있습니까? this method 상태에 대한Java에서 실행되면 System.console()이 설정되는 이유와 개미를 통해 실행될 경우 설정 해제되는 이유는 무엇입니까?
는답변
Javadoc을 : 어떤 경우
는, 현재의 Java 가상 머신과 관련된 고유 콘솔 오브젝트를 돌려줍니다.
그리고 System.Console
클래스 상태에 대한 문서 :
가상 시스템이 콘솔이되는지는 기본 플랫폼에 따라 또한 가상 머신이 호출되는 방식에 따라 달라집니다. 가상 컴퓨터가 표준 입력 및 출력 스트림을 리디렉션하지 않고 대화 형 명령 줄에서 시작되면 해당 콘솔이 존재하며 일반적으로 가상 컴퓨터가 시작된 키보드 및 디스플레이에 연결됩니다. 백그라운드 작업 스케줄러와 같이 가상 시스템이 자동으로 시작되면 일반적으로 콘솔이 없습니다.
Ant가 새 Java 프로세스를 포크 (fork)하면 표준 출력을 리디렉션한다고 상상합니다.
그렇다면'System.Console'이 실제로 어떤 경우에 유용할까요? 사용자가 스트림을 리디렉션하지 않는다고 기대할 수는 없습니다. –
일부 유형의 저주와 유사한 동작을 수행하는 경우 콘솔에 대한 읽기/쓰기 기능을 원하는 경우가 있습니다. 나는 그것이 null인지 확인하고 출력이 리디렉션되는 경우 다른 유형의 동작으로 분기하도록하려는 것이 좋습니다. –
btw, 내가 "curses-like behavior"라고 말했을 때 : http://en.wikipedia.org/wiki/Curses_(programming_library) 및 http://en.wikipedia.org/wiki/Ncurses –
입력 또는 출력이 리디렉션되는 경우 System.console()이 null을 반환합니다. 개미가 그렇게합니다.
글쎄, 개미는 빌드 자동화 도구입니다. 대개 대화식 응용 프로그램은 빌드 자동화 내에서 거의 자리 매김이 없으므로 개미를 통해 작업을 실행할 때 콘솔을 얻지 못하는 것은 전혀 예상하지 못합니다.
개미 자바 작업이 java.exe 대신 javaw.exe를 사용하고있는 것처럼 보입니다. javaw에는 콘솔이 연결되어 있지 않습니다.
- 1. ASP.NET 세션을 사용하거나 피하는 이유와 이유는 무엇입니까?
- 2. 가상 속성이 null로 설정되는 이유는 무엇입니까?
- 3. 내 개인 변수가 null로 설정되는 이유는 무엇입니까?
- 4. Net :: IP의 넷 마스크가 잘못 설정되는 이유는 무엇입니까?
- 5. 내 uialertview가 applicationdidbecomeActive에서 재개 될 때마다 해제되는 이유는 무엇입니까?
- 6. html 본문의 Javascript가 실행되면 실행됩니까?
- 7. SNMP SET 요청이 실패한 경우 netsnmp에 errindex가 설정되는 위치는 무엇입니까?
- 8. Eclipse를 통해 개미를 실행하면 환경 변수를 찾을 수 없지만 터미널을 통해 개미를 실행하는 것은 괜찮습니다.
- 9. Elixir/SQLAlchemy의 session.bind가 스레드 내에서 None으로 설정되는 이유는 무엇입니까?
- 10. 개미를 통해 SVN에서 파일을 커밋하는 방법
- 11. cobertura에서 개미를 통해 결함있는 회선 범위 (100 %)?
- 12. Java에서 https 클라이언트 설정
- 13. Java에서 중단 점 설정
- 14. 이유와 목적 C
- 15. Java에서 지연된 참조 설정
- 16. ConnectionString 설정의 범위가 항상 "응용 프로그램"으로 강제 설정되는 이유는 무엇입니까?
- 17. 실행될 때마다 왜 이것을 제거하지 않는 이유는 무엇입니까?
- 18. 변수가 Java에서 인터페이스 이름으로 선언되는 이유는 무엇입니까?
- 19. Java에서 추상 클래스를 직렬화하지 않는 이유는 무엇입니까?
- 20. Maven Mojo가 개별적으로 실행될 때 설정 속성을 잃을 수있는 이유는 무엇입니까?
- 21. jQuery fadein이 한 번만 실행될 수있는 이유는 무엇입니까?
- 22. Java에서 ODBC 연결 설정
- 23. Java에서 이중 선택 잠금이 끊긴 이유는 무엇입니까?
- 24. Java에서 freopen을 사용하는 경우
- 25. 속도가 한 번 실행되면
- 26. Java에서 UDP를 사용하여 네트워크를 통해 객체를 전송하는 경우
- 27. java에서 socket을 통해 HTTP 응답을받는 방법은 무엇입니까?
- 28. Java에서 BufferedInput/OutputStreams를 사용하는 경우?
- 29. Java에서 예외가 발생할 경우 최종 변수에 할당
- 30. 단계가 함께 실행될 때 오이 시나리오가 실패하는 이유는 무엇입니까?
나는 이맥스에서 이런 종류의 프로그램을 시작할 때 같은 문제를 발견했다. –