这个问题的核心是 重定向符号
<
在命令行中,我可以这样执行程序:
java -cp /classpath MyClass < data.txt
即编译 MyClass.class 字节码文件成二进制码并运行,然后重定向 data.txt 到这个程序。
程序可以正常运行。
但是当我使用 Intellij 的时候问题就来了,
根据 官方帮助文档 我在 Program Argument 中只能输入参数名,如果输入了重定向符号,就会导致抛出异常
Exception in thread "main" java.lang.IllegalArgumentException.
有没有什么方法能在 IntelliJ 中给程序添加重定向?拜托了!!!
========= 关于“那你为什么不直接用命令行运行?贱人就是矫情!” ============
因为我要调试程序。
======= 关于“那你为什么不直接在命令行用jdb调试?贱人就是矫情!” =========
jdb这种东西 Oracle 官方都懒得推广,求放过。
Mengingati bahawa soalan adalah mengenai penyahpepijatan program, terdapat cara lain:
Jalankannya pada baris arahan, tambah parameter
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y ,address= 4004
(Saya tidak tahu sama ada parameter tengah diperlukan, ia disalin dan ditampal. Bagaimanapun, ia adalah untuk mendayakan penyahpepijatan dan membuka port 4004)
Kemudian apabila IDEA berjalan, terdapat kaedah jauh, yang dilengkapi dengan port.
Apabila berjalan dari baris arahan, program akan berhenti dan menunggu sambungan Anda boleh menyambung kepadanya untuk nyahpepijat dengan menjalankan penyahpepijatan jauh dalam IDEA.
(PS: Saya tidak tahu apa yang akan berlaku jika kod di kedua-dua belah pihak berbeza)
Saya hanya boleh memikirkan satu cara untuk menyelamatkan negara:
Jika penyoal menggunakan Pengimbas untuk membaca baris arahan,
Hanya Sacnner baharu(Fail baharu("...")) akan baik
Sebenarnya, IDEA pada asalnya adalah mengenai menetapkan parameter. . .