Запуск Java из скрипта JRuby выдает TypeError: нет открытых конструкторов для Java - PullRequest
0 голосов
/ 25 июня 2011

У меня есть приложение Java, которое я пытаюсь запустить из скрипта JRuby.Я гуглял / стрелял / перебирал так много решений - мой «базовый» скрипт:

include Java
require 'c:/nm/bin/h4j.jar'
module HOLTER
  include_package 'com.nemon.h4j.H4JFrame';
end
include_class Java::ComNemonH4j::H4JFrame
H4JFrame.new

Это выдает следующую ошибку:

TypeError: no public constructors for Java::ComNemonH4j::H4JFrame
  (root) at h4j_initialTest.rb:7

И я 'мы обнаружили, что это также выдает ту же ошибку:

$nm = HOLTER::H4JFrame.new

Главный конструктор для моего приложения:

public static void main(String argv[])
{
  captureOutput();
  new H4JFrame(argv);
}   

Так что мне нужно сделать, чтобы мой скрипт просто запустил мойприложение?Любой / все советы и указатели будут с благодарностью !!

1 Ответ

1 голос
/ 24 августа 2011

Имеет ли H4JFrame конструктор с 0 аргументами?В вашем java main вы показываете, что он вызывается с String argv[] в качестве аргумента, поэтому я предполагаю, что это не так.Чтобы запустить приложение с текущим кодом, вам нужно передать массив Java String в H4JFrame.

include Java
require 'c:/nm/bin/h4j.jar'
module HOLTER
  include_package 'com.nemon.h4j.H4JFrame';
end
include_class Java::ComNemonH4j::H4JFrame
str_arr = ["example input", "this is an array of strings", "it is a ruby object"]
H4JFrame.new(str_arr.to_java :String)
...