Здесь я пытаюсь загрузить свой Jruby-скрипт в мой Java-код, но получаю длинную ошибку, которую я действительно не знаю, что это значит,
Файл player.rb находится в той же папке, что и TEST.java.
Вот ошибка получаю:
java.io.FileNotFoundException: .player.rb (The system cannot find the file specified)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:120)
at java.io.FileInputStream.<init>(FileInputStream.java:79)
at org.jruby.embed.internal.EmbedRubyRuntimeAdapterImpl.parse(EmbedRubyRuntimeAdapterImpl.java:117)
at org.jruby.embed.ScriptingContainer.parse(ScriptingContainer.java:1195)
at org.jruby.embed.ScriptingContainer.runScriptlet(ScriptingContainer.java:1275)
at test.TEST.<init>(TEST.java:29)
at test.TEST.main(TEST.java:33)
Exception in thread "main" org.jruby.embed.ParseFailedException: java.io.FileNotFoundException: .player.rb (The system cannot find the file specified)
at org.jruby.embed.internal.EmbedRubyRuntimeAdapterImpl.parse(EmbedRubyRuntimeAdapterImpl.java:143)
at org.jruby.embed.ScriptingContainer.parse(ScriptingContainer.java:1195)
at org.jruby.embed.ScriptingContainer.runScriptlet(ScriptingContainer.java:1275)
at test.TEST.<init>(TEST.java:29)
at test.TEST.main(TEST.java:33)
Caused by: java.io.FileNotFoundException: .player.rb (The system cannot find the file specified)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:120)
at java.io.FileInputStream.<init>(FileInputStream.java:79)
at org.jruby.embed.internal.EmbedRubyRuntimeAdapterImpl.parse(EmbedRubyRuntimeAdapterImpl.java:117)
... 4 more
Java Результат: 1
Вот мой код Java:
import org.jruby.*;
import java.util.ArrayList;
import java.util.List;
import org.jruby.embed.PathType;
import org.jruby.embed.ScriptingContainer;
public class TEST {
private final static String jrubyhome = "C:/jruby-1.6.3";
private final String filename = "player.rb";
private TEST() {
ScriptingContainer container = new ScriptingContainer();
List<String> loadPaths = new ArrayList();
loadPaths.add(jrubyhome);
// JRuby 1.5.x
container.setLoadPaths(loadPaths);
// JRuby 1.4.0
//container.getProvider().setLoadPaths(loadPaths);
container.runScriptlet(PathType.ABSOLUTE, filename);
}
public static void main(String[] args) {
new TEST();
}
}
А вот мой код Ruby:
def numberMethod
number = 3
return number
end
puts numberMethod
puts "Test, test!"
Новая ошибка, которую я получил сейчас:
java.io.FileNotFoundException: C: \ Users \ Oskar \ Documents \ NetBeansProjects \ TEST \ src \ test (доступ запрещен)
в java.io.FileInputStream.open (собственный метод)
в java.io.FileInputStream. (FileInputStream.java:120)
в java.io.FileInputStream. (FileInputStream.java:79)
в org.jruby.embed.internal.EmbedRubyRuntimeAdapterImpl.parse (EmbedRubyRuntimeAdapterImpl.java:117)
в org.jruby.embed.ScriptingContainer.parse (ScriptingContainer.java:1195)
в org.jruby.embed.ScriptingContainer.runScriptlet (ScriptingContainer.java:1275)
на тестовом. ТЕСТ. (TEST.java:29)
at test.TEST.main (TEST.java:33)
Исключение в потоке "main" org.jruby.embed.ParseFailedException: java.io.FileNotFoundException: C: \ Users \ Oskar \ Documents \ NetBeansProjects \ TEST \ src \ test (доступ запрещен)
в org.jruby.embed.internal.EmbedRubyRuntimeAdapterImpl.parse (EmbedRubyRuntimeAdapterImpl.java:143)
в org.jruby.embed.ScriptingContainer.parse (ScriptingContainer.java:1195)
в org.jruby.embed.ScriptingContainer.runScriptlet (ScriptingContainer.java:1275)
на тестовом. ТЕСТ. (TEST.java:29)
at test.TEST.main (TEST.java:33)
Вызывается: java.io.FileNotFoundException: C: \ Users \ Oskar \ Documents \ NetBeansProjects \ TEST \ src \ test (доступ запрещен)
в java.io.FileInputStream.open (собственный метод)
в java.io.FileInputStream. (FileInputStream.java:120)
в java.io.FileInputStream. (FileInputStream.java:79)
в org.jruby.embed.internal.EmbedRubyRuntimeAdapterImpl.parse (EmbedRubyRuntimeAdapterImpl.java:117)
... еще 4
Результат Java: 1
Новый код Java:
import org.jruby.*;
import java.util.ArrayList;
import java.util.List;
import org.jruby.embed.PathType;
import org.jruby.embed.ScriptingContainer;
public class TEST {
private final static String jrubyhome = "C:/jruby-1.6.3";
private final String filename = "C:/Users/Oskar/Documents/NetBeansProjects/TEST/src/test/player.rb";
private TEST() {
ScriptingContainer container = new ScriptingContainer();
List<String> loadPaths = new ArrayList();
loadPaths.add(jrubyhome);
// JRuby 1.5.x
container.setLoadPaths(loadPaths);
// JRuby 1.4.0
//container.getProvider().setLoadPaths(loadPaths);
container.runScriptlet(PathType.RELATIVE, filename);
}
public static void main(String[] args) {
new TEST();
}
}