这个问题的核心是 重定向符号
<
在命令行中,我可以这样执行程序:
java -cp /classpath MyClass < data.txt
即编译 MyClass.class 字节码文件成二进制码并运行,然后重定向 data.txt 到这个程序。
程序可以正常运行。
但是当我使用 Intellij 的时候问题就来了,
根据 官方帮助文档 我在 Program Argument 中只能输入参数名,如果输入了重定向符号,就会导致抛出异常
Exception in thread "main" java.lang.IllegalArgumentException.
有没有什么方法能在 IntelliJ 中给程序添加重定向?拜托了!!!
========= 关于“那你为什么不直接用命令行运行?贱人就是矫情!” ============
因为我要调试程序。
======= 关于“那你为什么不直接在命令行用jdb调试?贱人就是矫情!” =========
jdb这种东西 Oracle 官方都懒得推广,求放过。
PHP中文网2017-04-18 09:59:25
질문이 프로그램 디버깅에 관한 것임을 기억하고 다른 방법이 있습니다.
명령줄에서 실행하고 매개변수를 추가합니다.
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspens=y ,address= 4004
(중간 매개변수가 꼭 필요한지는 모르겠지만 복사해서 붙여넣습니다. 어쨌든 디버깅을 활성화하고 4004 포트를 열어주기 위한 것입니다)
그런 다음 IDEA가 실행되면 포트가 장착된 원격 방식입니다.
명령줄에서 실행하면 프로그램이 중지되고 연결을 기다립니다. IDEA에서 원격 디버깅을 실행하여 디버깅을 위해 연결할 수 있습니다.
(PS: 양쪽 코드가 다르면 어떻게 될지 모르겠습니다)
나라를 구하는 방법은 딱 한 가지밖에 생각나지 않습니다.
질문자가 Scanner를 사용하여 명령줄을 읽는다면
new Sacnner(new File("..."))만 있으면 됩니다
그런데 IDEA는 원래 매개변수 설정에 관한 것입니다. 파일 리디렉션은 더 이상 매개변수가 아닙니다. . .