From fb45a5b31409089df28a6c01c5609bcaf33ddf98 Mon Sep 17 00:00:00 2001 From: Thad House Date: Thu, 24 May 2018 17:05:58 -0700 Subject: [PATCH] Allows passing in the main robot class from the command line (#1091) --- myRobot/build.gradle | 1 + .../java/edu/wpi/first/wpilibj/RobotBase.java | 22 +++++++++++-------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/myRobot/build.gradle b/myRobot/build.gradle index 0f8b2f0cf0..55bb577ed0 100644 --- a/myRobot/build.gradle +++ b/myRobot/build.gradle @@ -112,6 +112,7 @@ model { run.systemProperty 'java.library.path', filePath run.environment 'LD_LIBRARY_PATH', filePath run.workingDir filePath + run.args << 'MyRobot' found = true } diff --git a/wpilibj/src/main/java/edu/wpi/first/wpilibj/RobotBase.java b/wpilibj/src/main/java/edu/wpi/first/wpilibj/RobotBase.java index c3aa313270..d3fe384c50 100644 --- a/wpilibj/src/main/java/edu/wpi/first/wpilibj/RobotBase.java +++ b/wpilibj/src/main/java/edu/wpi/first/wpilibj/RobotBase.java @@ -227,19 +227,23 @@ public abstract class RobotBase implements AutoCloseable { HAL.report(tResourceType.kResourceType_Language, tInstances.kLanguage_Java); String robotName = ""; - Enumeration resources = null; - try { - resources = RobotBase.class.getClassLoader().getResources("META-INF/MANIFEST.MF"); - } catch (IOException ex) { - ex.printStackTrace(); - } - while (resources != null && resources.hasMoreElements()) { + if (args.length > 0) { + robotName = args[0]; + } else { + Enumeration resources = null; try { - Manifest manifest = new Manifest(resources.nextElement().openStream()); - robotName = manifest.getMainAttributes().getValue("Robot-Class"); + resources = RobotBase.class.getClassLoader().getResources("META-INF/MANIFEST.MF"); } catch (IOException ex) { ex.printStackTrace(); } + while (resources != null && resources.hasMoreElements()) { + try { + Manifest manifest = new Manifest(resources.nextElement().openStream()); + robotName = manifest.getMainAttributes().getValue("Robot-Class"); + } catch (IOException ex) { + ex.printStackTrace(); + } + } } System.out.println("********** Robot program starting **********");