I want to import a class that I already write in an external folder,
for example :
My class Example.java
that is located in c:\class\Example.java
to my script like using
var importedClass = new JavaImporter("c:\\class\\Example.java");
or
importClass("c:\\class\\Example.java");
this is in a script for ScriptEngine rhino
how can I do that ???
In Eclipse or NetBeans just write the class you want to use and press on Ctrl + Space . The IDE will automatically import the class.
We can create external JavaScript file and embed it in many html page. It provides code re usability because single JavaScript file can be used in several html pages. An external JavaScript file must be saved by .js extension.
The import statement consists of the import keyword alongside the name of the module. Here we have created a class named GFG which has two methods: add () and sub (). Apart from that an explicit function is created named method () in the same python file.
An external JavaScript file must be saved by .js extension. It is recommended to embed all JavaScript files into a single file. It increases the speed of the webpage. Let's create an external JavaScript file that prints Hello Javatpoint in a alert dialog box. message.js. function msg () {. alert ("Hello Javatpoint");
The import statement consists of the import keyword alongside the name of the module. Here we have created a class named GFG which has two methods: add () and sub (). Apart from that an explicit function is created named method () in the same python file. This file will act as a module for the main python file.
I understand that you want to:
The javax.tools package provides a mechanism for compiling code, though if you're not running in a JDK, ToolProvider.getSystemJavaCompiler() will return null
and you'll have to rely on some other compilation mechanism (invoking an external compiler; embedding the Eclipse compiler; etc.).
Java bytecode (.class
binaries) can be loaded at runtime via ClassLoaders.
In order for the loaded classes to be visible to your scripting engine, you'll need to provide them via the ScriptEngineManager(ClassLoader) constructor.
EDIT: based on the requirements
public class HelloWorld {
public void say() {
System.out.println("Hello, World!");
}
}
This script just invokes the Java reflection API to load and instantiate a class HelloWorld.class
from the C:\foo\bin
directory:
function classImport() {
var location = new java.net.URL('file:/C:/foo/bin/');
var urlArray = java.lang.reflect.Array.newInstance(java.net.URL, 1);
urlArray[0] = location;
var classLoader = new java.net.URLClassLoader(urlArray);
return classLoader.loadClass("HelloWorld");
}
var myClass = classImport();
for(var i=0; i<10; i++) {
myClass.getConstructor(null).newInstance(null).say();
}
There are more elegant ways of doing this, I'm sure.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With