I am trying to create an application that can compile a provided .java file during runtime. I understand that there is a programmatical compiler available within the tools.jar of the JDK. However, I cannot guarantee that the user of the application has JDK. I have attempted to package tools.jar within the application and reference it as a library. This seems to work within the Eclipse IDE when I have tools.jar added into the Bootstrap Entries of the classpath. When exporting the application to a runnable jar (with tools.jar packaged with it),
ToolProvider.getSystemJavaCompiler(); returns null. I am not exactly sure what the issue is, but I believe it may have to do with the Bootstrap Entries of the classpath not being properly preserved when the application is exported to a runnable jar. Any ideas? Are there any alternatives to the tools.jar compiler that I could use? Thanks for your patience, as this is my first question posted here!
How to use JavaCompiler from tools.jar without JDK
708 views Asked by rgoulazian At
1
There are 1 answers
Related Questions in JAVA
- I need the BIRT.war that is compatible with Java 17 and Tomcat 10
- Creating global Class holder
- No method found for class java.lang.String in Kafka
- Issue edit a jtable with a pictures
- getting error when trying to launch kotlin jar file that use supabase "java.lang.NoClassDefFoundError"
- Does the && (logical AND) operator have a higher precedence than || (logical OR) operator in Java?
- Mixed color rendering in a JTable
- HTTPS configuration in Spring Boot, server returning timeout
- How to use Layout to create textfields which dont increase in size?
- Function for making the code wait in javafx
- How to create beans of the same class for multiple template parameters in Spring
- How could you print a specific String from an array with the values of an array from a double array on the same line, using iteration to print all?
- org.telegram.telegrambots.meta.exceptions.TelegramApiException: Bot token and username can't be empty
- Accessing Secret Variables in Classic Pipelines through Java app in Azure DevOps
- Postgres && statement Error in Mybatis Mapper?
Related Questions in ECLIPSE
- I need the BIRT.war that is compatible with Java 17 and Tomcat 10
- GUI window is not appearing
- I am trying to run java application in Eclipse, When I try to do Run > Run as > Java Application it starts to show little processing but nothing happe
- Migrating Google App Engine - Eclipse Java 8
- Unable to compile the class for JSP in tomcat 8.5.95
- Eclipse + CMake: Eclipse index unable to resolve header files
- Commit Each Change from Eclipse to GitHub as a different Branch
- Using Eclipse Maven project, import new version of a class from a jar file created from another Maven project
- Is the Eclipse RCP "Window > Show View" menu predefined somewhere
- To enable syntax highlighting with color for JBehave stories in Eclipse
- Eclipse: "package...does not exist" when building a Maven package that references a class in another project
- TestNG update related issue
- How to print a value by comparing 2 fields inside JSON - RestAssured
- How to build using Eclipse Tycho
- "Cannot be resolved as a type" problem with Java
Related Questions in CLASSPATH
- Having trouble executing my program from a jar, using Jinput
- java.lang.ClassNotFoundException: org.apache.jsp.WEB_002dINF.jsp.ImportTab_jsp
- Failed to sample data: com.google.protobuf.Descriptors$DescriptorValidationException: ".google.protobuf.Timestamp" is not defined
- Could not resolve all files for configuration ':sqflite:classpath'
- Intellij classpath add path and shorten
- Where to put resources and access it in Java Project (in IntelliJ)? How to read from it then?
- Gradle Multi-Module Build with custom source sets: Missing Classes in Compile Classpath of dependent modules
- Cant connect to sqlite databases in java using java.sql
- What is the recommended way to access file inside test/resource folder from karate features file inside test/java/karate
- How do I run this GitHub java project?
- Trouble Adding ANTLR to Classpath in Java: "package org.antlr.v4.runtime.tree does not exist"
- How can Child jar access a resource present on parent Jar's classpath?
- ClassNotFoundException with Java's -cp on Mac OS X
- Build failed with an exception (2 errors)
- Lambda Spring boot converting html to pdf
Related Questions in JAVACOMPILER
- How to set the location that JavaCompiler executes from?
- Java Compiler Incorrect Boxed Primitive Coercion
- Java Error: Could not find or load main class, Caused by: java.lang.NoClassDefFoundError
- Generate Javadoc and sources for the library
- How to make Java compiler ignore the absent interfaces implemented by a dependency class?
- Problem running AspectJ Load-Time-Weaving with java command
- "package exists in another module" error when setting up JDK11 source code in Intellij IDEA
- compileDebugJavaWithJavac' task (current target is 18) and 'kaptGenerateStubsDebugKotlin' task (current target is 19)
- Issues with jar exporter tool
- when invoking a java method by method.invoke() its not returning any value instead print in the console log
- How to compile Java 9 and subsequent releases code in JDK8?
- ClassCastException when compiling, loading and using inherited class at runtime
- Get Resource in openjdk 11
- JavaCompiler class can not find imports upon compiling
- System Java Compiler behaves different depending on dependencies defined in maven
Related Questions in TOOLS.JAR
- Provider sun.tools.attach.LinuxAttachProvider not found
- lib/tools.jar, sonarque, and jdk 11
- I trying to convert .apk to .jar file in cmd it shows following error
- Android Studio no tools.jar found
- Flutter: Cannot determine path to 'tools.jar' library for Android API 30 Platform (C:/Users/Sam/AppData/Local/Android/Sdk)
- Apache-axis 1.4 Tomcat 9 deployment failure for missing tools.jar
- The POM for com.sun.xml.bind:jaxb-core:jar:2.2.11 is invalid,transitive dependencies (if any) will not be available
- Trying to run react-native project on emulator
- can't find the symbol from tools.jar
- migrating from using jdk8 to jdk11, getting errors related to tools.jar
- When will an object fail to cast to its parent class in Java?
- Tools.jar is missing
- How to print java compiler error log using tools.jar compile method?
- Cannot resolve com.sun:tools:0 in Maven Project?
- Java source code modification in annotation processor
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
You need to use the compiler within "tools.jar"
will return the compiler from the jdk defined in the path variable, you can do this instead:
Or you can add tools.jar as a library at compile time
Or you can change System properties, but that leads to unexpected behaviors