I facing some problems in running java.class files from geany, I am able to successfully compile the the java source files .
Here is a simple example of what is happening : I have a Source file named VowelsToUnderScores.java which resides under the package(directory) called 'strings' . I have set the classpath for both the Compilation and Execution in "Set Includes and Arguments" dialog box and the commands in the dialog box goes like this: ------------------------- Java source file commands
Compile : javac -classpath /home/siddharth/Programming/Java\ Files/oprt/opr/src "%f"
Execute : java -classpath /home/siddharth/Programming/Java\ Files/oprt/opr/src "%e"
----------------------
As I said the compilation was successful but when I run the compiled file (F5) , I get get an error in the Run Window which shows the following error messages :
---------------------------------- Exception in thread "main" java.lang.NoClassDefFoundError: VowelsToUnderScores Caused by: java.lang.ClassNotFoundException: VowelsToUnderScores at java.net.URLClassLoader$1.run(URLClassLoader.java:217) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:205) at java.lang.ClassLoader.loadClass(ClassLoader.java:323) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) at java.lang.ClassLoader.loadClass(ClassLoader.java:268) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:336) Could not find the main class: VowelsToUnderScores. Program will exit. ----------------------------------------------
Here is the code written in VowelsToUnderScores.java file for your reference : ------------------------------------------------- /* * VowelsToUnderScores.java * * Copyright 2009 R.Siddharth * * This program is free software; you can redistribute it and/or *modify * it under the terms of the GNU General Public License as *published by * the Free Software Foundation; either version 2 of the License, *or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public *License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301, USA. */ package strings; import java.util.regex.*; public class VowelsToUnderScores { private String s ; private Pattern p; private Matcher m; private boolean b; public VowelsToUnderScores(String a) { this.s = a ; p = Pattern.compile("[a,e,i,o,u,A,E,I,O,U]"); }
public void vwlsto_() { m = p.matcher(this.s); String rs ; rs = m.replaceAll("_"); System.out.println(rs); } public static void main (String args[]) { VowelsToUnderScores vtu = new VowelsToUnderScores("I am using GNU/Linux Operating system."); vtu.vwlsto_(); } } ----------------------------------------------------------------- Here's another bit of information which I accidentally found when writing this mail - when I comment the package information and make the Execute command in the Set Includes and Argument dialog look like this :
-------- Execute : java "%e" ---------- Then I am able to run the program successfully ! .
I want to be able to run the code with the package information intact . Can any one here help me out ? .
Thank you for your help .
This isn't actually a problem in Geany so much as it is a misunderstanding about how Java packages work.
Check out this resource for help: http://java.sun.com/docs/books/tutorial/java/package/packages.html
On 09/11/09 11:44, R.Siddharth wrote:
I facing some problems in running java.class files from geany, I am able to successfully compile the the java source files .
Here is a simple example of what is happening : I have a Source file named VowelsToUnderScores.java which resides under the package(directory) called 'strings' . I have set the classpath for both the Compilation and Execution in "Set Includes and Arguments" dialog box and the commands in the dialog box goes like this:
Java source file commands
Compile : javac -classpath /home/siddharth/Programming/Java\ Files/oprt/opr/src "%f"
Execute : java -classpath /home/siddharth/Programming/Java\ Files/oprt/opr/src "%e"
As I said the compilation was successful but when I run the compiled file (F5) , I get get an error in the Run Window which shows the following error messages :
Exception in thread "main" java.lang.NoClassDefFoundError: VowelsToUnderScores Caused by: java.lang.ClassNotFoundException: VowelsToUnderScores at java.net.URLClassLoader$1.run(URLClassLoader.java:217) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:205) at java.lang.ClassLoader.loadClass(ClassLoader.java:323) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) at java.lang.ClassLoader.loadClass(ClassLoader.java:268) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:336) Could not find the main class: VowelsToUnderScores. Program will exit.
Here is the code written in VowelsToUnderScores.java file for your reference :
/*
VowelsToUnderScores.java
Copyright 2009 R.Siddharth
This program is free software; you can redistribute it and/or
*modify
it under the terms of the GNU General Public License as
*published by
the Free Software Foundation; either version 2 of the License,
*or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public
*License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
MA 02110-1301, USA.
*/ package strings; import java.util.regex.*; public class VowelsToUnderScores { private String s ; private Pattern p; private Matcher m; private boolean b; public VowelsToUnderScores(String a) { this.s = a ; p = Pattern.compile("[a,e,i,o,u,A,E,I,O,U]"); }
public void vwlsto_() { m = p.matcher(this.s); String rs ; rs = m.replaceAll("_"); System.out.println(rs); }
public static void main (String args[]) { VowelsToUnderScores vtu = new VowelsToUnderScores("I am using GNU/Linux Operating system."); vtu.vwlsto_(); } }
Here's another bit of information which I accidentally found when writing this mail - when I comment the package information and make the Execute command in the Set Includes and Argument dialog look like this :
Execute : java "%e"
Then I am able to run the program successfully ! .
I want to be able to run the code with the package information intact . Can any one here help me out ? .
Thank you for your help .