JDK6'da, her biri bir dosyada birden çok komut dosyası yüklemenin ve bir komut dosyasının başka bir komut dosyasının bir yöntemine başvurmasının bir yolu var mı? "Dahil" gibi bir şey mi? Her bir dosyayı yürütmek için aynı kapsamı kullandığınız sürece, daha önce çalıştırılan dosyalardaki işlevlere ve değişkenlere başvurabilirler.JavaScript (Rhino) kitaplığı kullanıyor veya diğer komut dosyalarını da dahil et
cevap
Sana Rhino küresel nesne/kapsam/include nasıl benzer
load("file1.js");
load("file2.js");
load("file3.js");
methodFromFileOne();
var bar = methodFromFileTwo();
var etc = dotDotDot();
Bu bir javascript kaynak dosyası yükleyecek, PHP'de olacak gerektiren bir load() method/property sonra olduğunu düşünüyorum. Bir dosyayı yükledikten sonra, yüklenen dosyada tanımlanan herhangi bir nesneyi arayabilir ve çalıştırabilir veya kullanabilirsiniz.
Bu şeyler bildiğim tek bağlamdır Rhino kabuğu, kullanırken nasıl çalıştığını size olmak için ne
Büyük yardım, teşekkürler –
(soru deneyim benim alanının dışında Java SDK, söz) karınca içinde bu yapmaya çalışıyor, bu hatayı görebilirsiniz:
<script language="javascript">
load('foo.js');
</script>
javax.script.ScriptException: sun.org.mozilla.javascript.internal.EcmaError: TypeError: Cannot find function load.
ama bunu kaçabilir miyiz:
<script language="javascript">
eval(''+new String(org.apache.tools.ant.util.FileUtils.readFully(new java.io.FileReader('foo.js'))));
</script>
>> '' + << burada büyük önem taşıyor! –
gerçek hayattan bir örnek bu kez, yaniçalışan Rhino 1.7R4 ileayrıştırıcı. aşağıdaki gibi
import org.mozilla.javascript.Context;
import org.mozilla.javascript.Scriptable;
import org.mozilla.javascript.ScriptableObject;
...
Context context = Context.enter();
Scriptable globalScope = context.initStandardObjects();
Reader esprimaLibReader = new InputStreamReader(getClass().getResourceAsStream("/esprima.js"));
context.evaluateReader(globalScope, esprimaLibReader, "esprima.js", 1, null);
// Add a global variable out that is a JavaScript reflection of the System.out variable:
Object wrappedOut = Context.javaToJS(System.out, globalScope);
ScriptableObject.putProperty(globalScope, "out", wrappedOut);
String code = "var syntax = esprima.parse('42');" +
"out.print(JSON.stringify(syntax, null, 2));";
// The module esprima is available as a global object due to the same
// scope object passed for evaluation:
context.evaluateString(globalScope, code, "<mem>", 1, null);
Context.exit();
Bu kodu çalıştırdıktan sonra, çıkış görmelisiniz:
{
"type": "Program",
"body": [
{
"type": "ExpressionStatement",
"expression": {
"type": "Literal",
"value": 42,
"raw": "42"
}
}
]
}
Yani gerçekten hüner globalScope
nesneyi yeniden içindedir.
- 1. Android.mk, tüm cpp dosyalarını dahil et
- 2. GitHub'tan JavaScript dosyalarını HTML sayfalarına dahil etme
- 3. Node.js veya Javascript kitaplığı için DWG dönüştürücü
- 4. log4j2: PID'yi dahil et
- 5. sqldeveloper'da diğer komut dosyalarını çalıştırmak için komut dosyası
- 6. İyonik Karanlık Teması Dahil Et
- 7. Akka oyuncuları oyuna dahil et
- 8. C# Araç Kutusu'nda Türetilmiş Denetimi Dahil Et
- 9. Hangi Javascript işlevsel kitaplığı: Underscore veya wu.js veya İşlevsel veya ...?
- 10. Şirketler ikili dosyalarını oluşturmak için neler kullanıyor?
- 11. Raylar 3.1 varlık precompilation - tüm javascript dosyalarını dahil
- 12. Diğer uygulamalardan POST kabul et
- 13. ActiveRecord to_json: koşullu olarak ilişkilendirmeleri dahil et
- 14. Otomatik dahil javascript dosyası dahil değilse
- 15. Diğer tamamlama komut dosyalarını etkilemeden COMP_WORDBREAKS nasıl sıfırlanır?
- 16. Diğer komut dosyalarını hata ayıklama işleminden kaldırmayı PhpStorm
- 17. Opera, bazı JavaScript dosyalarını yüklenmeyecek
- 18. JavaScript denklemi çözücü kitaplığı
- 19. CMake ve diğer makefile'ler dahil
- 20. Twig- diğer Directory Şablon dahil
- 21. iOS: IBAction bildiriminde göndereni dahil et?
- 22. yukarıdaki klasördeki .php dosyasını dahil et
- 23. jenkins postasında Oluşturma isteğini dahil et
- 24. Varlık Çerçevesine Katıl ve Dahil Et
- 25. Android NDK: Boost C++ kitaplığı dahil
- 26. NoSQL veritabanları endeksleri kullanıyor veya kullanıyor mu?
- 27. google sitelerine javascript dahil
- 28. Rhino: JavaScript tarafından çağrılan Java yönteminden bir Tamsayı nasıl döndürülebilir?
- 29. Node.js komut dosyalarını Unix | boru (komut satırında)?
- 30. TipScript dosyalarını komut satırından nasıl çalıştırırım?
Bu Rhino kabuğunun dışında kullanılabilir mi? – Thilo
Emin değilim, bu benim ödeme oranım değil. (Bunu yansıtmak için soruyu güncelledi) –