I made this little java code that runs notepad:
import java.io.IOException;
public class pad {
public static void main(String[] args) throws IOException, InterruptedException {
execute();
}
private static void execute() throws IOException, InterruptedException {
Process exec = Runtime.getRuntime().exec("notepad.exe");
exec.waitFor();
}
}
The code works fine before and after building into a .jar file, however when running from an html page it gives me a java.lang.reflect.invocationtargetexception error, here is the html source:
<applet code="pad.class"
archive="not.jar"
width=400 height=400>
</applet>
Please note that I am still new to Java, thanks for your help.
In order to run your code in a web browser, the pad class needs to extend Applet class (or if you use Swing - JApplet).
The first thing you need to know, is that applets are not started using the main(String[]) method - they have a lifecycle methods like init(), start(), etc.
There is a good tutorial on Applets on Oracle site, I strongly suggest you check it out.
Related
Is there any equivalent of this JavaFX Preloader and Netbeans, for the IntelliJ editor either online that I'm not finding or in someones noggin?
I've followed these posts
How to create splash screen as a Preloader in JavaFX standalone application?,
Java 9 JavaFX Preloader but I'm still a little lost and unsure - I end up with 3 main functions (1 for Main containing code below, 1 for TestPreLoader extending PreLoader and 1 for MyApplication extending Application) and Application.launch in
public class Main {
public static void main(String[] args) {
System.setProperty("javafx.preloader", "TestPreLoader");
Application.launch("MyApplication", args);
}
}
will not accept args as a parameter even though the types are identical.
Also, I've tried this from jetbrains but it doens't tell me anything about preloaders or how to link it with the application or why it's important. https://www.jetbrains.com/idea/help/applications-with-a-preloader-project-organization-and-packaging.html
Anyone have any ideas? Thanks
So I figured it out, it was a little silly. Turns out I just needed to do this.
public class Main {
public static void main(String[] args) {
System.setProperty("javafx.preloader", TestPreLoader.class.getCanonicalName());
Application.launch(MyApplication.class, args);
}
}
I setup my eclipse for PROCESSING perfectely..
I am using Eclipse Oxygen and installed PROCESSING 3.3.6
i am trying to run processing program in eclipse and there is no option is run as Applet
My code is below :
package processing01;
import processing.core.PApplet;
public class Processing01 extends PApplet{
public static void main(String[] args) {
PApplet.main("Processing01");
}
public void settings(){
size(300,300);
}
public void setup(){
fill(120,50,240);
}
public void draw(){
ellipse(width/2,height/2,second(),second());
}
}
Processing 3 no longer supports running as an applet. From the Processing 3 change list:
Applet is gone — Java's java.awt.Applet is no longer the base class used by PApplet, so any sketches that make use of Applet-specific methods (or assume that a PApplet is a Java AWT Component object) will need to be rewritten.
The PApplet class no longer extends the Applet class, which means you can't treat Processing sketches as a component anymore, and you can't run them as an applet. You can only run them as an application.
Applets are dead, and shouldn't be used anyway.
Because having package the code would be
//replace
PApplet.main("Processing01");
//with
PApplet.main("processing01.Processing01");
When I try to run my java code for processing it shows an error "selection does not contain applet". This is how I am supposed to run my code.
Here is my code:
package proccesing;
import processing.core.*;
public class proccesing extends PApplet {
public void setup() {
background(100,100);
}
public void draw() {
line(0,0,0,100);
}
}
As of Processing 3, PApplet no longer extends Applet. In other words, you can't deploy as an applet anymore.
You could try using the Applet exporting tool, but you're much better off using Processing.js to deploy as JavaScript. Applets are pretty much dead and shouldn't really be used anymore.
class a {
public static void main(String args[]) {
}
}
i want to print "hello world" without touch or use above code and also without use of static and final keyword......
What are the different ways to initiate code execution.
Use public static void main(String args[]) { ... }
Use your static class initializer static { ... }. Problem: You need to get the class to load first. Solution: attempt to start the main method, but that means you need to have at least an empty main. However - OP states we cannot use 'static'.
Use an instance initializer { ... }. Problem: How do you instantiate an instance. Solution: initialize a static field with a class instance. However - OP states we cannot use static fields.
So what is left. I assume that we can use the empty main posted by the OP. From there on we build up a 4th solution:
public enum Play {
PLAY;
{ System.out.println("Hello World!"); }
public static void main(String args[]) { }
}
This should fulfill the conditions:
we do not modify the static main method, although we need the empty body just to get the class loaded.
we do not use a static initializer, we use an instance initializer instead.
to instantiate, and get the instance initializer started, we use an enum. Enum's start the initializer for each instance, meaning for each of the enum constants.
Also note the output when you try to execute a class without a main:
$ java -classpath . Play
Error: Main method not found in class Play, please define the main method as:
public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application
So that leaves us also the clue that we potentially can use javafx.application.Application. I did not investigate this trail any further.
You can create a JavaFX application, which is usually for displaying a GUI, and use it to output hello, world to the console and immediately shut the JavaFX GUI system down. JavaFX applications are executed by a special launch path in the java launcher. JavaFX applications do not need a main, static and final keywords.
The following snippet is just for demo purposes, I wouldn't recommend writing a JavaFX application unless you actually wish to display a GUI.
import javafx.application.Application;
import javafx.application.Platform;
import javafx.stage.Stage;
public class PlayApp extends Application {
#Override
public void start(Stage stage) {
System.out.println("hello, world");
Platform.exit();
}
}
// Totally useless code from the original question
// goes below the real app code and is just ignored
// and never used when the application runs.
class a {
public static void main(String args[]) {
}
}
You need to use Oracle Java 8+ to compile and execute the JavaFX application as below:
javac PlayApp.java
java PlayApp
The a class is in the PlayApp.java file only to meet the original poster's requirement from a comment:
it means the above code is fixed, you can't modify the above code but yes u can write anything to print "hello world" above or belove this code
Really, if you are writing a console application, just use a standard app format (with a static main method) instead:
class HelloWorldApp {
public static void main(String[] args) {
System.out.println("Hello World!"); // Display the string.
}
}
Unrelated advice on asking questions
In future, if you post such questions, I suggest that you also supply the reason for the question and why the bizarre constraints are placed on solutions. Also, address concerns such as WorldEnder's first comment on your question: "is this a code challenge? If not.. why?"
You can't just print "hello world" without MAIN method and also without using STATIC and FINAL key word in java because the main method is a function required you don't have to apply any rocket science in that thing if u are using intelliJ IDEA or any other IDE anyways this is the code
public class Basics_Of_Java {
public static void main(String[] args) {
System.out.println("Hello world");
basics of java in 1st line is the name of the java file you may have another name.
I want to launch static function from jar file and recieve its return value during install time. Is there some other way, rather then executing java.exe?
I really fail to understand the reason for downvotes...
You can run custom code during the installation by extending from CustomCodeAction of InstallAnywhere. All you need to do is to override the install and uninstall methods of the base class. Please find the snippet of the sample code below.
public class MyCustomCodeAction extends CustomCodeAction {
public void install(InstallerProxy proxy) throws InstallException {
// call the static function of your jar here
}
public void uninstall(UninstallerProxy Uproxy) throws InstallException {
// you can do something here if you need (not must)
}
}
Good luck!