2014-07-04 120 views
2

我在jar文件中有一個API,但是如何在JavaScript中使用jar中的類?當我嘗試導入它們時,JavaScript可以使用jar文件中的類(非Internet使用)

conf = Packages.abcapi.Config; 
    var cfg = new conf.Config(); 

它不起作用。這不會在瀏覽器或互聯網中使用。

UPDATE:

我使用Java的ScriptEngine擴展我們的API爲所有JSR-223腳本語言。在Java應用程序內部,我讀取JavaScript文件,然後使用ScriptEngine執行該文件。我需要JavaScript文件才能使用來自放置在jar文件中的API的類。我嘗試在運行ScriptEngine時在類路徑中設置jar,但仍未找到使用上述代碼的類。這在Jython中可以正常工作,因爲Jython在類路徑中設置jar之後使用jar文件中的類沒有問題。

+0

定義'import'關於您嘗試的內容並定義'不起作用' – charlietfl

+1

您在哪裏運行javascript然後? Node.js的?通過犀牛?你需要具體。 – Gimby

+0

@Gimby儘管現在正在回答問題,但請參閱上面的更新。 –

回答

5

我正在閱讀JavaScript文件,然後使用Java ScriptEngine執行它們。將JAR添加到類路徑當您運行那將執行JavaScript這樣的Java代碼,

java -cp ./;C:\Location\Of\The\Jar\File\abc.jar MainClass 

然後裏面的JavaScript,你可以從罐子裏獲得包和包設置爲一個變量。然後,當你想使用該包中的一個類時,只需在該類名前面加上變量,然後使用a。這樣,

myvariable = Packages.abc.foo.pack.name; 

    var foo = new myvariable.ClassFromTheJarFile("arg1","arg2"); 

    foo.doSomething(); 

    var fooSister = new myvariable.AnotherCLassFromTheJarFile("arg1"); 

    fooSister.doSomthingFromThisClass(); 

我所做的錯誤是試圖直接從包裝中這樣導入類,

myvariable = Packages.abc.foo.pack.name.ClassFromTheJarFile; 

所以只導入包,而不是類。爲了說明您不需要使用Java *

這不是在瀏覽器或互聯網上使用。這是另一個鏈接,它使用來自URL位置的jar,它可能對某人有所幫助http://mozilla-firefox-extension-dev.blogspot.com/2004/11/calling-java-code-in-custom-jars-from.html

相關問題