How To Add JAR And Config Files To CLASSPATH At Runtime
Jan 23, 2015
During runtime, I need to load the JAR files and relevant config files( .cfg files and .properties file) into CLASSPATH and run a specific java program from one of the JAR which is available in CLASSPATH.
Any relevant Java API details or a sample java program to implement the above use case.
I am looking for a way to compile Java Source-Files at runtime and save them all in an executable jar; almost like an IDE would do. I know that there is the javax.tools package which provides a JavaCompiler interface and you can use ToolProvider.getSystemJavaCompiler() to get an instance of a compiler. However, this method has one important problem: it only works on machines that have the JDK installed. Not when only the JRE is installed.
I guess at this point that I need some kind of third party library that offers an implementation of a JavaCompiler. Unfortunately, this is really complicated to search for on the internet since all top listings when searching "compile java at runtime jre" do not really provide a solution to the problem.
I am writing a (somewhat) complex simulation software right now which is supposed to be used by people who have absolutely no knowledge of programming. At the same time, this software should provide the user with a certain amount of flexibility and control over the flow of the simulation.
My previous take on this problem was to build a complex system to interprete user settings from a GUI. I would basically read the GUI input, output it to some kind of own scripting syntax which I just quickly made up and have that interpreted at runtime. Then I realized, that is a silly concept and I threw it out before I got far into the developement. The much better solution I came up with is taking the input from the GUI, create java source code from it and compile it at run-time. Seems much cleaner and nicer to me; will also probably have a better performance, but thats not really an issue anyways.
When I am trying to rename a config file, ApplicationEdition.txt, I am getting pop up window message "This action can not be completed because the file is open in Java(TM) Platform SE Binary. Close the file and try again." What does this message mean ? How do I close this file, if I don't see it open anywhere ? This file has been used when a cmd was executed, but that cmd has run successfully and its not stuck anywhere then how can this file still be open ?
How do I get java to tell me what it thinks the current deployment configuration properties are? I'm aware of Deployment Configuration File and Properties and see it tells me what the values are, how to set them, etc. But what I want is a way to run java and have it cough up what it's currently using. Something like 'java -display-config-properties' and have it spit out all current values it's using.
This taglib will have to be installed on local environment. How is it referred in jsp ? I dont see any code in jsp, which refers to the location of JSTL. So how does jsp invoke these tags ? Is it through classpath ?If its so , how is classpath set for JSTL ? Is it just as classpath is set for java ?
I am writing an Ant script using the javac command but the library I need is bundled in an ear file, how can I reference this jar in ear file without extracting the ear file.
I'm trying to run an enterprise java application running glasssfish server from my university ( the open university, distance learning and i recommend it). I get the following error:
The Java EE server classpath is not correctly set up - server home directory is missing.Either open the project in the IDE and assign the server or setup the server classpath manually.For example like this: ant -Dj2ee.server.home=<app_server_installation_directory> BUILD FAILED (total time: 0 seconds)
I am having an issue that I cannot seem to resolve with Ant deployments and my Classpath.
I have a module that is needed to run with Open Wonderland but for some reason when I run this particular module deployment it doesn't recognize part of the classpath.
On my server I have a class called JadeRunner.class and it is included in my classpath. I can verify but running the following code:
public class testClassPath{ public static void main(String args[]){ String classArg = args[0]; try{ Class testClass = Class.forName(classArg); }catch(ClassNotFoundException e){ e.printStackTrace(); } } }
I just enter the name of the class as an argument and if I get no errors that it can find the class. This works if I enter it directly from the command line. However with my ant deployment I get a ClassNotFoundException for this class. I run my ant deployment as root but I use the -E switch so it picks up my environment variables. The ant deployment finds all my other environment variables except this one.
I have some sample outputs:
$ java testClassPath org.jdesktop.wonderland.modules.mas.jade.weblib.JadeRunner (this give no output, so it finds the class) $ sudo -E java testClassPath org.jdesktop.wonderland.modules.mas.jade.weblib.JadeRunner (again no output, so it finds the class) $ sudo -E ant deploy
This gives ClassNotFoundException: org.jdesktop.wonderland.modules.mas.jade.weblib.JadeRunner
I need to start a new JVM. To do this my (production-) code pick a certain jar and starts a class in it. The name of this class is not fix. The picked jar has other jars in its Manifest class path section.
For my tests I want to replace my jars red from the main jar with the compile target folders of my Eclipse projects that make up my Application.
Getting that folders is quite easy because i configured the Starter project to depend on the other Projects of my app so that they are available via System.getProperty("java.class.path"). But eclipse creates absolute path in there. The result is that I cannot use the output of System.getProperty("java.class.path") as command line parameter, it's simply to long.
I tried to put the class path in a temporary jar file but it looks like that the jars class path is not added to the resulting class path when i is simply added as another classpath entry at command line. On the other hand I cannot run this temporary jar file via -jar option because the main class cannot be found if it is not located in the temporary jar...
Meanwhile I found that the main problem is not so much the other Projects but the 3rd party libs which eclipse refers them in their maven repository location. They blow up my classpath. I tried to convert their paths to relative but this didn't change that much...
So my question is: 1. is there a way to provide the classpath in a text file to java executable on command line? 2. is there a way to run a jar with the -jar option if the main class is outside the jar (but within the classpath in the jars manifest)? 3. is there any other way to solve my problem resulting from the limited command line length?
when I look at javaee-api it has javax.enterprise.context.ApplicationScoped and javax.inject.Named which are the particular imports being used in the bean. The facelets part is working, the template navigates correctly. It deploys to Glassfish and runs, except...there's no output from the @Named bean:
package dur.beans; import javax.enterprise.context.ApplicationScoped; import javax.inject.Named; @Named("nextClient") @ApplicationScoped public class NextClient implements NextClientLocal {
[code]...
Now it's working. I can't figure what I did for the life of me...that's the desired output, each time the page is accessed the counter increments.Now it works. Is this on the right track? Way off base? I have an entity class from a database which I'd like to link up to this, and output the class.I can inject the entity into NextClient? I'm trying to do the "R" for Read in a CRUD application with CDI and facelets (using templates).
I've found much reference material on EJB, but it seems a mishmash. I just want to use CDI. What am I doing right/wrong, or, besides the PDF from Oracle on Java EE 7, what are good CDI reference material's?
This the output of java from my PC under linux platform (rhel 6.5).
[pentaho@vertica-srv1 Downloads]$ java -version java version "1.7.0_79" Java(TM) SE Runtime Environment (build 1.7.0_79-b15) Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)
[Code] ....
But the problem is while trying to open ETL program under linux platform [pentaho@vertica-srv1 data-integration]$ ./spoon.sh .... I received the following error messages.
Trying to add database driver (JDBC): RmiJdbc.RJDriver - Warning, not in CLASSPATH? Trying to add database driver (JDBC): jdbc.idbDriver - Warning, not in CLASSPATH? Trying to add database driver (JDBC): org.gjt.mm.mysql.Driver - Warning, not in CLASSPATH? Trying to add database driver (JDBC): com.mckoi.JDBCDriver - Warning, not in CLASSPATH? [KnowledgeFlow] Loading properties and plugins...
If I try CLASSPATH: C:Program FilesMicrosoft JDBC Driver 4.0 for SQL Serversqljdbc_4.0enusqljdbc4.jar I receive a "Could not find or load main class" error.
When I assign a classpath-relative URL to an ImageView's 'Image' property, SceneBuilder is unable to display the Image in the Preview. It shows the text "Image not found" instead as a placeholder, which makes sense. What I'd like to do is add a classpath entry to SceneBuilder such that it is able to locate and display the Images. Any way to accomplish this (or similar)?
In a program I created, I'm using a text file that contains some texts needed for the program. The method relevant to this is something like the following.
private String wordgen(){ try { BufferedReader reader = new BufferedReader(new FileReader("src/Resources/adjectives.txt")); Random rand = new Random(); int low = rand.nextInt(400); String fil=""; int i=0; while(i!=low){
[Code]...
The program runs fine in netbeans project but once the jar is created it does not corporate with the text file. ("null" is returned) How can I attach text files to jar and exe?
I have a question about updating a grid during runtime in GridWorld. I'm making a game called Flood-It (basically, you click on squares to change their color and attempt to get all of the squares the same color in the grid) and I'm having trouble with changing the grid size. I made my own world class, called CellWorld.
Whenever a user wants to change the grid size after playing the game, this is supposed to set the grid to the new updated size, but it never changes in the actual game, i.e. the user just won a 2x2 game, attempts to change the size to 10x10, but the grid stays 2x2. By debug testing, I can say for certain that everything else works, such as the maxStepCalc and loading the grid. The only issue is the new grid not showing up.
I am using Swing, I have a JPanel and in it there is a JTextArea and a JButton. I want the JTextArea to move when the button is clicked on. I'm Not really sure how to do the action listener for the button. at the moment the JTextArea only moves once when the button is clicked on, but i want it to move every time the button is clicked on.
This is what i have so far:
moveButton = new JButton("MOVE"); moveButton.setName("move"); moveButton.setBounds(20, 140, 70, 40); text = new JTextArea("hello"); text.setEditable(false); text.setBounds(x, 50, 40, 20); panel.add(moveButton); panel.add(text);
In the actionPerformed method this is what it does:
How can i take run time value for static final variable...my lecturer said first time assignment is possible for declared final variable but in my case it shows compile time error..I'm placing my program below with error message
class Sample { static final String cname; void print() { System.out.println(cname); } public static void main(String args[]) { cname=args[0]; Sample s=new Sample(); s.print(); } }
Sample.java:11: cannot assign a value to final variable cname. cname=args[0];
There is no permission for me that I can change SQL query(or anything like this), and I've to return the modified ResultSet(not TableModel). I googled a lot to implement AbstractResultSet, but no luck for me. How can I achieve this ?
Iam getting this error at run time while using this command "java mypack.Accountbalance". I have compiled this source code and got its class file that I have put in mypack package but now its showing this error ..
Here's the code : package mypack; class Balance { String name; double bal; Balance(String n ,double b)
[Code] .....
Error: exception in thread "main" java.lang.NoClassDefFoundError: mypack/Ba at mypack.Accountbalance.main(Accountbalance.java:25) used by: java.lang.ClassNotFoundException: mypack.Balance