diff --git a/r/pom.xml b/r/pom.xml
index a6bec5284dc..fb5922b318f 100644
--- a/r/pom.xml
+++ b/r/pom.xml
@@ -200,6 +200,7 @@
**/derby.log
**/metastore_db/
**/README.md
+ **/interpreter-setting.json
**/dependency-reduced-pom.xml
diff --git a/r/src/main/java/org/apache/zeppelin/rinterpreter/KnitR.java b/r/src/main/java/org/apache/zeppelin/rinterpreter/KnitR.java
index e0af1d4698a..51a790cf385 100644
--- a/r/src/main/java/org/apache/zeppelin/rinterpreter/KnitR.java
+++ b/r/src/main/java/org/apache/zeppelin/rinterpreter/KnitR.java
@@ -34,12 +34,6 @@
public class KnitR extends Interpreter implements WrappedInterpreter {
KnitRInterpreter intp;
- static {
- Interpreter.register("knitr", "spark", KnitR.class.getName(),
- RInterpreter.getProps()
- );
- }
-
public KnitR(Properties property, Boolean startSpark) {
super(property);
intp = new KnitRInterpreter(property, startSpark);
diff --git a/r/src/main/java/org/apache/zeppelin/rinterpreter/RRepl.java b/r/src/main/java/org/apache/zeppelin/rinterpreter/RRepl.java
index 220b56e1285..0c46670c1d7 100644
--- a/r/src/main/java/org/apache/zeppelin/rinterpreter/RRepl.java
+++ b/r/src/main/java/org/apache/zeppelin/rinterpreter/RRepl.java
@@ -34,12 +34,6 @@
public class RRepl extends Interpreter implements WrappedInterpreter {
RReplInterpreter intp;
- static {
- Interpreter.register("r", "spark", RRepl.class.getName(),
- RInterpreter.getProps()
- );
- }
-
public RRepl(Properties property, Boolean startSpark) {
super(property);
intp = new RReplInterpreter(property, startSpark);
diff --git a/r/src/main/resources/interpreter-setting.json b/r/src/main/resources/interpreter-setting.json
new file mode 100644
index 00000000000..dee681423bb
--- /dev/null
+++ b/r/src/main/resources/interpreter-setting.json
@@ -0,0 +1,14 @@
+[
+ {
+ "group": "spark",
+ "name": "knitr",
+ "className": "org.apache.zeppelin.rinterpreter.KnitR",
+ "properties": null
+ },
+ {
+ "group": "spark",
+ "name": "r",
+ "className": "org.apache.zeppelin.rinterpreter.RRepl",
+ "properties": null
+ }
+]