232

I usually input command line arguments in Eclipse via run configuration. But I don't know how do achieve the same task in IntelliJ IDEA.

mtotowamkwe
  • 2,407
  • 2
  • 12
  • 19
sungkwangsong
  • 5,575
  • 4
  • 26
  • 18

19 Answers19

262

Windows, Linux, some Macs:

ALT+SHIFT+F10, Right, E, Enter, Tab, enter your command line parameters, Enter. ;-)

Mac with "OS X 10.5" key schema:

CTRL+ALT+R, Right, E, Enter, Tab, enter your command line parameters, Enter.

Nowaker
  • 12,154
  • 4
  • 56
  • 62
98

There's an "edit configurations" item on the Run menu, and on the pull-down to the left of the two green "run" and "debug" arrows on the toolbar. In that panel, you create a configuration with the "+" button in the top left, and then you can choose the Class containing main(), add VM parameters and command-line args, specify the working directory and any environment variables.

There are other options there as well: code coverage, logging, build, JRE, etc.

PanCrit
  • 2,688
  • 1
  • 18
  • 16
  • 2
    This is how I run in commandline `$gradle cucumber -Ptags=@Cal -Penv=dev1`. I entered vales under `Edit Config.. > Program Arguments` as `--tags "@Cal" "env=dev1"`. I noticed `@Cal` worked and `env=dev1` doesn't work. – Shabar May 31 '14 at 04:49
  • 2
    @PanCrit In my console when I do `java MyClass < someFileName.txt` it works, but when I add `< someFileName.txt` to program arguments in intelliJ, it does return `Error: Could not find or load main class <` Any idea how to solve it? – Maytham Fahmi Aug 26 '15 at 11:50
  • @maytham-ɯɐɥʇʎɐɯ, I wouldn't expect "< filename" to work in intelliJ, since that's explicitly shell syntax for a redirect to stdIn. IntelliJ would only be expecting to handle arguments that the program itself knows how to interpret. Is there any chance the program takes the name of input files as a parameter? That would be supported. – PanCrit Aug 29 '21 at 17:31
74

If you are using intellij go to Run > Edit Configurations menu setting. A dialog box will appear. Now you can add arguments to the Program arguments input field.

coletrain
  • 2,809
  • 35
  • 43
EastOcean
  • 1,222
  • 11
  • 10
43

Example I have a class Test:

Class Test

Then. Go to config to run class Test:

Step 1: Add Application

Add Application

Step 2:

Edit Configurations...

You can input arguments in the Program Arguments textbox.

son pham
  • 205
  • 1
  • 6
Dung Phan
  • 681
  • 8
  • 15
  • TIL that we can use variables in program arguments of run configuration: https://youtrack.jetbrains.com/issue/IDEA-74031 It is possible for example to use the current file path as an argument or just make a prompt. – Isinlor Feb 02 '19 at 10:33
38

We cannot go into Terminal and give in the good old java Classname arg1 arg2 arg3

We'll have to edit the run configuration.

Step 1 : Take the Run menu
Step 2 : Select Edit Configurations
Step 3 : Fill the Program arguments field

enter image description here

After that, the arguments will be inserted to the end of the command that IntelliJ creates whenever you run the program :)

Ajmal V Aliyar
  • 1,569
  • 14
  • 19
9

You separate multiple program arguments with spaces. (this was not obvious to me)

Program arguments:Julia 52 Actress

4

On a MacBook Air with "OSX 10.11.3":

  1. ctrl + alt + r
  2. e
  3. Enter
  4. Program arguments: Write your command line parameters (space between each item if you have more than one argument)
  5. Enter
Raphael
  • 201
  • 2
  • 4
4

Do this steps :-

Go to Run - Edit Configuration -> Application (on the left of the panel ) -> select the scala application that u want to run -> program argument

Suman Banerjee
  • 95
  • 1
  • 10
4

Just left click on your current configuration (mine is Main) and select Edit Configurations, enter image description here

then in the input field Program arguments enter your values as you would in the console, click OK.

enter image description here

Ed_
  • 973
  • 11
  • 25
3

I am using IDEA 2021.3.2 exactly, and I run across a simple solution: Just right click in your code area:

step1

Then choose Modify Run Configuration:

step 2

Input your command line parameters there.

Guss
  • 30,470
  • 17
  • 104
  • 128
452866
  • 31
  • 3
2

maytham-ɯɐɥıλɐɯ, you can use this code to simulate input of file:

System.setIn(new FileInputStream("FILE_NAME"));

Or send file name as parameter and then put it into FileInputStream:

System.setIn(new FileInputStream(args[0]));
Community
  • 1
  • 1
ayurchuk
  • 1,879
  • 1
  • 17
  • 13
2

Main Program -> Run -> Edit Configurations -> Inside Configuration there is Program arguments text box. add space separated argument in the text box. Then you can read those arguments in the args array (public static void main(String[] args))

Sneha Mule
  • 641
  • 8
  • 6
2

As @EastOcean said, We can add it by choosing Run/Debug configurations option. In my case, I have to set configuration for junit. So on clicking Edit configurations option, a pop up window is displayed. Then followed the below steps:

  1. Click on + icon
  2. Choose junit from the list
  3. Then we can see Configuration tab in the right hand side
  4. Select test kind, in my case Its a Class
  5. Next step browse through the location of the class which needs to be executed/run
  6. Next to that, choose VM Option, click on expand arrow icons
  7. Set required arguments for an example (-Durl="http://test.com/home" -Dsourcename="API" -Dbrowsername="chrome")
  8. Set jre path.

Save and run.

Thank you.

2
  1. Click on the 'Edit configurations...' from the top of the toolbar enter image description here

  2. In the popup-window, ensure that the 'Environment' section is expanded out (by clicking on the dropdown arrow) enter image description here

  3. Application's Command line arguments should go into the 'Program arguments' field enter image description here

Dinesh Kumar
  • 307
  • 1
  • 3
  • 9
1

In IntelliJ, if you want to pass args parameters to the main method.

go to-> edit configurations

program arguments: 5 10 25

you need to pass the arguments through space separated and click apply and save.

now run the program if you print

System.out.println(args[0]); System.out.println(args[1]); System.out.println(args[2]); Out put is 5 10 25

Premakumar
  • 47
  • 5
1

I'm adding an updated answer to this question since IntelliJ IDEA 2021.

  1. Select Edit Configuration from the toolbar (or under the Run menu): Picture of new location of edit configuration box

  2. You now have to click on the Modify Options menu (Alt + M) to the left of where it says Build and Run, and above the drop down menu that lets you select the version of Java (or other language) that your using.

  3. After you click Modify Options the first box you will see--titled Operating System--will have a line that says "Redirect input". Click on that to add the box for input redirection. Close Modify Options.

  4. Under Build and Run, the third box down is for command line input.

Picture of Intelij IDE with Edit Configuration box open with arrows pointing to cmd line input and input redirection

That's all there is to it.

nrostov
  • 11
  • 2
0

To do this in IntelliJ IDEA 2020.2.3 (Community edition) on Windows 10:

  1. ALT-SHIFT-F10
  2. 0
  3. [TAB] 7 times

Updated for 11/2020.

dannylee8
  • 505
  • 7
  • 17
0

It's strange that no one wrote about simply copying "Run" command output into your terminal and adding the arguments.

For example, when I run "Run" command in my Intellij IDEA the output is something like

/usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java -javaagent:/opt/idea-IC-211.7142.45/lib/idea_rt.jar=32887:/opt/idea-IC-211.7142.45/bin -Dfile.encoding=UTF-8 -classpath /home/aliaksei/Projects/Training/Java/firstTry/out/production/firstTry MyClass

Process finished with exit code 0

And then I simply copy the first line and enter my arguments like:

<THIS_HUGE_LINE> foo bar

Note: remember to build the project before running the command in terminal. Either click "Build" or "Run" first. You can find these options, for example, at the bottom: link to the screenshot

Alex Dzyuba
  • 1
  • 1
  • 4
0

Create a script to run from the command line! On Linux or Mac:

  1. Run in the usual way (with mouse or Shift-F10 or whatever)
  2. In the Run window, copy the execution command, it's the first line.
  3. In the terminal window, type:
cat >run.sh
#!/usr/bin/bash
{paste command line} "$@"
^D
chmod +x run.sh

Now you can just switch into the terminal and type:

./run.sh {arg1} {arg2}
Alcamtar
  • 1,478
  • 13
  • 19