JAR - Package Directory - Can't Find Or Load Main Method
Apr 24, 2015
I am trying to understand how package(directory structure) and JAR files work interchangeably. From my understanding JAR is a package file format typically used to aggregate many Java classes. Since many classes are usually contained inside a package, I should be able to create a JAR file from a package, and use them interchangeably. A single JAR file is easier to handle then multiple classes and folders.
To test my understanding of the concept, I am working with the following project structure,
package BookPackage;
public class Book{
private String bookname;
public Book(String str){
bookname = str;
}
public String getBookName(){
return bookname;
}
}
and BookDemo.java contains the following code,
import BookPackage.Book;
class BookDemo{
public static void main(String ... args){
Book b = new Book("Lord of the Rings");
System.out.println(b.getBookName());
}
}
From the development_directory, I used the following commands to compile and run the project,
...and it compiles and works as expected.Now, I will try to convert the BookPackage folder(package) into single jar file for portability, and I am using the following command to do that,development_directory/ jar -cf bookpkg.jar BookPackage ...this command generates the bookpkg.jar file.
I am going to remove the BookPackage folder to see if bookpkg.jar file really works as a replacement for the BookPackage directory structure.
After removal of BookPackage folder, the development_directory structure looks like this,
I have permanently set the path of bin of JDK 1.6 in the environment variables of my system. I am able to compile any of my java programs successfully. But when I give command to run the program I am getting an error "could not find or load main class".
When I write the command "set classpath=.;" program runs successfully. I want to know whether I have to set this classpath everytime I run a new progaram. Is there any permanent way to set classpath ?
I creates this simple code (shown below) inside a package of a major opensource code (i.e., openSHA), but when i run it the following error appears. The error mentions a class named "KT_testGmpeForScenarioRupture" that i wrote before and did not run showing exactly the same error.
Code:
package org.opensha.sha.gcim.imr.attenRelImpl; public class KT_Test { private static void main(String args) { int x=4; System.out.println("x is " + x); } }
Error: Could not find or load main class org.opensha.sha.gcim.imr.attenRelImpl.KT_testGmpeF orScenarioRupture
I am using Netbeans as my IDE and I have created a program called Saluton.java
I navigate to the folder holding the class file using the command line under Windows 7 but when I issue the command java Saluton.class I get an error it cannot load or find the main class.
I tried running my program on cmd but it produces the error "could not find or load main class" ...It compiles well but it just doesn't run. Here is my code:
package writedoc; import java.io.FileWriter; import java.io.PrintWriter; import java.io.IOException; public class WriteDoc { public static void main(String[] args) throws IOException { String strDocument="grades.txt";
I'm trying to run a java program from cmd. I'm using Windows 8, java version "1.8_0_20". I've got two classes, the main class called Middleware and a secondary class, called WorkerThread, of which the main class is using functions. I've successfully compiled both .java files with javac, and created the .class file. So all files are in the same folder. However, when I attempt to run the main class with java Middleware, I get the error message: "Error: Could not find or load main class". Here's the main class:
package middleware; import java.net.*; import java.util.concurrent.*; public class Middleware { //Number of threads serving clients. private static int nr_threads = 5; private static int portNr = 6789; private static ServerSocket welcomeSocket; private static ExecutorService executor;
[code]....
My code compiles and runs fine in eclipse but on the console, I'm having troubles.
I'm getting an error trying to run a welcome app from a book. I've looked at the FAQs and can't seem to solve the issue. I'm guessing my path and/or classpath are not right. Here's my path environment variable.
I was trying to write my own version of the game SimpleDotCom from Head First Java. I have two files:
Game.java: package project_01; public class Game{ byte hitCount = 0; String result = "miss"; int counter = 0; String checkGuess(int[] location,int userGuess){
[Code] .....
The two files are in the same directory, "project_01" and the CLASSPATH environment variable is set to ".;". The game compiled but when I tried launching it with "java GameTester" it returned the error : Could not find or load main class GameTester. I know my game is horrible and probably extremely buggy but I'll fix all the bugs, etc. later, right now I just need to get it to run.
My problem is that I can compile a java HelloWorld program using javac HelloWorld.java but I cannot run the program using java HelloWorld. I didn't create the code it was developed by a professional programmer. My assignment is to compile and run, so that I see the output.
I'm new to this java stuff and when I go to notepad++ and this keeps coming up when I try to compile it: "Error: Could not find or load main class HelloWorld" what it means...
I've just started, so right now I'm reading about declaring enums, the book lists the following code
enum CoffeeSize { //8,10 & 16 are passed to the constuctor BIG(6), HUGE(10), OVERWHELMING(16); CoffeeSize(int ounces){ //constructor this.ounces = ounces;
[Code] .....
I'm assuming that code to be in a same file since enums can be declared within and outside a class, so I saved it into a file named "Coffee.java", it compiles just fine from command line but when I try to execute "java Coffee" it throws "Error: Could not find or load main class Coffee"...
I am writing a palindrome program. I don't understand what is wrong with my Main method. It is giving me error and error is "Can not find symbol in main method"
import java.awt.*; import java.awt.event.*; import javax.swing.*; public class PalindromeA extends JFrame { private JTextField inText; private JTextField outText;
I am using javac -d WEB-INFclasses WEB-INFclassesdemoServlet4ListenerTest.java and javac -d WEB-INFclasses WEB-INFclassesdemoServlet4MyServletContextListener.java to compile the classes.
In my program I have to get directory name&address, in this directory is none, one, or more *.txt(maybe not *.txt files) and I have to read info from all of them.
On C++ is very easy to do that with "findnext, find last, findfirst", so how can I do this in Java?
I need to design a gui that will find out all the dead symbolic link from the directories. And I used the logic and syntax I find out in java orcle docs. And If I will give the direct path name of the symbolic file then it is running fine with the output and enable to find the smbolic link is active or not. Now the real problem is that , I want that logic of detection should run out through the complete files and subdirectories of the directory. So Then I used the tree walk concept to transver through the complete file system of the directory and embed the logic of the detection inside it for detection of the dead symbolic link. But now it showing erroe which is not approacable for me.
import java.io.File; import java.io.IOException; import java.io.PrintStream; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; public class To_Transver {
My working directory is e:ajava. in package p1 i create two classes c1 and c2. net beans creates three files e:ajavap1srcp1, e:ajavap1srcc1, e:ajavap1srcc2. package runs without a hitch. i create another package p2 under e:ajava. i want to use class c1 in p2. pray what on earth should be my import statement in the p2 source code after the first statement 'package p2'. another related querry what should i include in my class path so as to gain access to c1 and c2 in source code of p2.
this is the following task i am trying to do. Write an interface Directory to manipulate entries in a telephone directory for the University. The interface must support the following operations:
1) The ability to insert new entries into the directory. Entries should be stored in alphabetical order of surname. 2) Delete entries from the directory either by name or number 3) Provide a lookup method that will find the extension no of a member of staff given his/her name. You should try to make this method run as efficiently as possible. 4) Change a person's telephone number 5) Print the telephone directory in a neatly tabulated fashion.
Write a class ArrayDirectory that implements this interface using an array to store the telephone directory information. The class must store the surname and initial for each member of staff and their telephone extension (a four digit number which may start with a zero). You may find it useful to define a class Entry to store information about individual entries. The entries should be read into the array from a text file consisting of multiple lines in the following format:
Surname<tab>Initials<tab>Telephone extension
The part that i am stuck on is trying to do the entry method, delete entries method, loop up method, change persons telephone number and be able to print it.
I made a breakout like game that runs as a applet and now i wanted to make it run in a jframe so i wrote this
Java Code:
import java.applet.*; import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.awt.image.*; public class BrickBuster{ public static void main(String[] args){ JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); JApplet BrickBuster = new JApplet(); frame.add(BrickBuster); BrickBuster.init(); } } mh_sh_highlight_all('java');
It compiles fine but whenever i try running it with the java command it says it couldnt find or load main class. also i have it save in a folder called BrickBuster so i called java BrickBusterBrickBuster.class
Consider the url-pattern: <url-pattern> /Beer/* </url-pattern>
The web app structure is: -
webapps | -->AdviceApp | -->WEB-INF --> {{Beer}} This can be real or virtual.
My book says that /Beer/* can be a real or a virtual directory. What is the difference between the two and how do I create a virtual directory in tomcat ?