Comments (4)
it seems jshell not load any annotation processor (such as lombok and mapstruct, etc).
https://bugs.openjdk.java.net/browse/JDK-8213600
from ijava.
We can compile source code in shell, then import those bytecode class files:
-
edit java source code, eg TestVO:
package vo; @lombok.Data public class TestVO { private String name; private Integer age; }
-
download lombok.jar(https://projectlombok.org/downloads/lombok.jar) to libs;
-
compile:
cd vo; javac -cp libs/lombok.jar TestVO.java
; -
add to classpath, eg: add vo parent folder to env's IJAVA_CLASSPATH(restart jupyter):
export IJAVA_CLASSPATH="/home/jupyter/notebooks/0-Java:$IJAVA_CLASSPATH"
; -
import in jupyter cell, eg:
import vo.*;
from ijava.
Very useful.
But it seems a little troublesome. It will be great if ijava-kernel could compile and setup by itself.
Thank u for your reply.
from ijava.
We could compile at runtime by ourselves.
eg:
// 1. compiler output, use System.err if null
StringWriter out = new StringWriter();
// 2. a diagnostic listener; if null use the compiler's default method for reporting diagnostics
DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector<>();
// 3. a file manager; if null use the compiler's standard file manager
StandardJavaFileManager fileManager = compiler.getStandardFileManager(diagnostics, null, null);
// 4. compiler options, null means no options
List<String> options = buildCompileOptions(compileOptions);
// 5. the compilation units to compile, null means no compilation units
Iterable<? extends JavaFileObject> compilationUnit = fileManager.getJavaFileObjectsFromFiles(Collections.singletonList(sourceFile));
CompilationTask task = compiler.getTask(out, fileManager, diagnostics, options, null, compilationUnit);
Boolean isCompileSuccess = task.call();
fileManager.close();
I built a cell magic for compile, here is source code:
- compile utils: RuntimeCompiler
- cell magic: CompilerMagics
- usage:
from ijava.
Related Issues (20)
- Google Colab IJava Notebook stuck at "Connecting..." HOT 2
- The %%loadFromPOM seems to fail when importing BOMs HOT 2
- Interested in IJava
- How to import custom script ? HOT 4
- Code-inspection does not work.
- No colored or user-friendly error message displayed
- How to programatically generate Markdown HOT 1
- java kenrnel reflecting for only admin not reflecting to students
- executing java cell programmatically
- Error loading binder HOT 2
- ./gradlew installkernel not working
- maintenance status == discountinued? HOT 1
- idea: possible to add debugger to IJava on Google Colab? HOT 3
- how to use %classpath magic correctly? HOT 2
- Is there a magic command to set java.library.path?
- is it possible to limit which java packages require no import statements? HOT 2
- When I run `python3 install.py --sys-prefix`, I encounter ModuleNotFoundError: No module named ‘jupyter_client’? HOT 1
- %%loadFromPOM doesn't work for tika-parsers-standard-package after the kernel restart HOT 2
- %classpath and %jars doen't work in Windows
- Supported version of iJava
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ijava.