Ich benutze Mozilla Rhino für meine Anwendung und ich muss auf eine C/C++ - Bibliothek während der Implementierung aufrufen. Gibt es einen einfachen Weg dies zu tun, außer c/C++ Funktionen direkt über Java aufzurufen?Wie rufe ich auf C++ von Mozilla Rhino Javascript
Antwort
Sie können C/C++ Funktionen nicht direkt aus Javascript aufrufen.
Sie können eine Java-Wrapper-Klasse erstellen, die C/C++ - Code aus Java aufrufen kann. Rufen Sie dann die Methoden der Java-Wrapper-Klasse aus Javascript auf. Wenn Sie diesen Ansatz verwenden möchten, suchen Sie nach einem Lernprogramm zur Verwendung von JNA oder JNI oder ähnlich (für Java < -> C/C++).
Es gibt jedoch ein paar Probleme mit diesem Ansatz:
Der C/C++ Code wird in dem gleichen Adressraum wie die JVM ausgeführt werden. Bugs im C/C++ Code sind anfällig für Hardcrash der JVM. Harte Abstürze sind schwer zu debuggen.
Typischer C/C++ - Code ist nicht Thread-sicher. Wenn Sie versuchen, es aus Java-Code aufzurufen, der Multi-Threading ist, können schlimme Dinge passieren. z.B. siehe oben.
Die Javascript -> Java -> C++ - Aufrufsequenzen werden nicht billig sein. Es ist nicht unbekannt, dass Leute versuchen, C/C++ zu verwenden, um einen Leistungsschub zu erhalten, nur um festzustellen, dass es ihre Anwendung langsamer ausführen lässt.
- 1. Mozilla Rhino: Standard-JavaScript-Konformitätsstufe
- 2. Vorteile der Verwendung von Rhino (Mozilla Nashorn)
- 3. Wie rufe ich C++ - Compiler programmgesteuert auf?
- 4. wie rufe ich asp.net regExp validator von Javascript auf?
- 5. Wie rufe ich eine serverseitige Funktion von Javascript auf?
- 6. Wie rufe ich die ReplaceFile-Funktion von C# auf?
- 7. Wie rufe ich C++ Funktionen von einem Lua-Skript auf?
- 8. konfigurieren Rhino in Javascript Eclipse
- 9. Wie rufe ich eine .NET Assembly aus C/C++ auf?
- 10. Wie rufe ich IL2JS richtig auf?
- 11. JavaScript - Wie rufe ich eine Funktion innerhalb einer Funktion auf?
- 12. Was ist der Unterschied zwischen der integrierten Rhino-Version von Java 6 und dem Rhino-Paket direkt von Mozilla?
- 13. Wie rufe ich eine dynamisch benannte Methode in Javascript auf?
- 14. Wie rufe ich einen vererbten JavaScript-Konstruktor mit Parametern auf?
- 15. Wie rufe ich meine Funktion in Javascript auf?
- 16. Wie rufe ich MVC Controller von mit Javascript-Funktion
- 17. Wie rufe ich eine Objective C-Funktion auf?
- 18. Wie rufe ich vbs-Datei von Outlook
- 19. Wie rufe ich Java-Code von JavaScript-Code in Wicket?
- 20. Wie rufe ich Perl-Skript in C# -Anwendung auf?
- 21. Wie rufe ich C von Go über die "Fremdfunktionsschnittstelle" an?
- 22. Wie gebe ich etwas in Rhino aus?
- 23. Wie rufe ich Stargazer auf einer Liste von Modellen auf?
- 24. Wie rufe ich Enumerable.Join von F #?
- 25. Probleme mit Rhino auf Android
- 26. JavaScript-Code funktioniert nicht auf Mozilla Firefox
- 27. Rhino: Wie JS Funktion von Java
- 28. Ausführen von benutzerdefiniertem Javascript auf jeder Seite in Mozilla Firefox
- 29. Wie rufe ich kann
- 30. Wie rufe ich http api auf der https-Site auf?