Skip to content
Alex Addy edited this page Oct 5, 2016 · 3 revisions

Classes That Can Be Run

  • Supervisor (supervisor.Supervisor)
  • VoteBox (votebox.Votebox)
  • Tap (tap.Tap)

How To Do It

These instructions assume you are using IntelliJ.

  1. Make sure IntelliJ has imported the project correctly. There shouldn't be any red squiggles when you open up any of the project files. If IntelliJ isn't able to resolve some of the references, you should add all the .jar files from the lib directory to your project. IntelliJ has a nice tutorial to do this here.

  2. Locate the "Select Run/Debug Configuration" at the right side of the top bar.

  3. Select "Edit Configurations" in the drop-down menu.

  4. In the dialog window, create new "Application" run configurations by selecting the + and choosing "Application".

  5. The "main" class is located as shown in the above bullet list. The VM options box should be set to

    -Djava.net.preferIPv4Stack=true

    since STAR-Vote doesn't work on IPv6 networks.

  6. The program arguments box should be set to an integer that is unique among the instances of STAR-Vote that you will run on your network. Additionally, keep in mind that you can only run one module at a time on a computer, so if you want to test interactions between modules, you'll need multiple computers. Also additionally, Rice's Wi-Fi networks don't work with the Auditorium. We haven't tested it on Rice ethernet. (If you are only running one STAR-Vote module, 0 will work.)

  7. You will be able to run the modules by selecting the run configuration from the dropdown dialogue box, selecting the module you want, and hitting the green arrow.

IntelliJ can't find an output directory?

After you get that error message, a dialog window will open.

  1. Choose the "Paths" tab.

  2. Choose the "Use module compile output path" radio button and select a folder for IntelliJ to use as an output folder. (It doesn't seem to matter, but making an output folder in the project directory might be smart.)

Clone this wiki locally