Re: Java server won't run after reboot

From: Bob Smith (bob_at_netprt.com)
Date: 05/31/04

  • Next message: Larry Brown: "RE: Setting RH9 for static IP"
    Date: Mon, 31 May 2004 11:19:45 -0600 (MDT)
    To: "General Red Hat Linux discussion list" <redhat-list@redhat.com>
    
    

    Oops, on the last example, set the classpath for a jar as follows:

    export CLASSPATH=<pathtojar>/MyHelloWorld.jar
    e.g. Using /opt/myapp/lib as <pathtoyourclasslocation>
    export CLASSPATH=/opt/myapp/lib/MyHelloWorld.jar

    HTH,

    -Bob

    > Working with classpaths in Java isn't too hard, but there are some rules
    > to follow.
    >
    > 1. Simplest scenario: Executing in the same directory, and there are no
    > package definitions in your source code. Example: HelloWorld, no package
    > definition. Execute from that directory, no classpath definition needed.
    > eg.
    >
    > Class HelloWorld { ... }
    >
    > 2. Next simplest: You compile without packages defined:
    > using the same directory for source and compiled classes, or if you
    > compiled classes to a different directory:
    >
    > export CLASSPATH=<pathtoyourclasslocation>
    > example directory: /opt/myapp/lib/
    > then
    > export CLASSPATH=/opt/myapp/lib/
    > and call it:
    > java HelloWorld
    >
    >
    > 3. Adding a package definition to your source code, and there is a
    > definite source code hierachy. Using the package example below:
    >
    > package project.testjava;
    > Class HelloWorld { ... }
    >
    > Your directory structure should look like this:
    > <pathtoyoursourcelocation>/project/testjava/HelloWorld.java
    >
    > Assuming that you compile your code in the same directory and deposit the
    > class files there, then set your classpath as follows:
    >
    > export CLASSPATH=<pathtoyoursourcelocation>
    > e.g. Using /opt/myapp/source/ as <pathtoyoursourcelocation>:
    > ex. export CLASSPATH=/opt/myapp/source/
    >
    > and call the application as follows:
    >
    > java project.testjava.HelloWorld
    >
    > --------------------------------------------
    >
    > If you compile to a different location, then your directory structure will
    > look like this after a compilation:
    >
    > <pathtoyoursourcelocation>/project/testjava/HelloWorld.java
    > <pathtoyourclasslocation>/project/testjava/HelloWorld.class
    >
    > Then set the classpath as follows:
    > export CLASSPATH=<pathtoyourclasslocation>
    > e.g. Using /opt/myapp/lib as <pathtoyourclasslocation>
    > export CLASSPATH=/opt/myapp/lib
    >
    > and call the application as follows:
    >
    > java project.testjava.HelloWorld
    >
    > 3. You've compiled to a jarfile, e.g. MyHelloWorld.jar
    > export CLASSPATH=<pathtojar>/MyHelloWorld.jar
    > e.g. Using /opt/myapp/lib as <pathtoyourclasslocation>
    > export CLASSPATH=/opt/myapp/lib
    >
    > and call as follows:
    > java project.testjava.HelloWorld
    >
    >
    > -Bob
    >
    >> On Saturday 29 May 2004 05:44 pm, you wrote:
    >>> That didn't work. I still get the NoClassDefFoundError. Any other
    >>> ideas?
    >>
    >> You're right !! it doesn't work. I just try this myself, and whenever I
    >> try to
    >> execute from outside the directory where the java files is located, I
    >> got
    >> the
    >> same error. I thought I've seen this and what I suggested was the
    >> solution,
    >> obviously not ! (Now it should be obvious that I am not a java developer
    >> myself, I just play with it sometime)
    >>
    >> After some searching myself, I only have this solution:
    >>
    >> If for example, my java program is in
    >> ~/project/testjava/helloworld.java,
    >> I
    >> can put in helloworld.java:
    >>
    >> package project.testjava;
    >> <rest of the src code>
    >>
    >> then I need to go to ~, and compile it from there:
    >> javac project/testjava/helloworld.java
    >>
    >> and running it from there would work tpp:
    >> java project/testjava/helloworld
    >>
    >> The problems with the solution: First, I can't find a way so that I can
    >> use
    >> absolute path during compile and running (which is probably what you
    >> want
    >> in
    >> your case, since you're going to put the command in rc.local). So what I
    >> want
    >> is something so that I can say:
    >>
    >> javac /home/<username>/project/testjava/helloworld.java
    >> java /home/<username>/project/testjava/helloworld
    >>
    >> when I tried, the solution does not work. I can't also figure out what
    >> to
    >> put
    >> in after the "package" keyword in the source code to make the absolute
    >> path
    >> work.
    >>
    >> Secondly, the source code is dependent on what directory you want to
    >> compile
    >> and run the java program from. Unless I am missing something, that is
    >> just
    >> plain stupid !! Source code of a program should never be dependent on
    >> where
    >> the program is running from.
    >>
    >> So that's it. I am kinda stuck right now too. I don't know if that would
    >> help
    >> you, but if you find the real solution, please let me know, cause right
    >> now
    >> it bugs the hell out of me too ! (BTW, I have a task of writing some
    >> java
    >> program in the near future, so this would be good to know).
    >>
    >> I know this is going OT, but if anyone else on the list know a solution,
    >> please help.
    >>
    >> RDB
    >>
    >>
    >>> On Sat, 2004-05-29 at 11:59, Reuben D. Budiardja wrote:
    >>> > On Saturday 29 May 2004 12:16 pm, Michael Sullivan wrote:
    >> <snip>I wrote a java server that I want to start every time
    >>> > > my server PC restarts. I created a /usr/local/classes directory
    >>> and
    >>> > > copied Server.class and the support classes it uses there. Id cd'd
    >>> to
    >>> > > /usr/local/classes and issued a java Server from there and it works
    >>> > > fine, but if I issue a java /usr/local/classes/Server from anywhere
    >>> > > outside the /usr/local/classes directory it tells me
    >>> > >
    >>> > > Exception in thread "main" java.lang.NoClassDefFoundError:
    >>> > > /usr/local/classes/Server
    >> <snip>
    >>> > Try the following:
    >>> > set the environment variable CLASSPATH to /usr/local/classes so that
    >>> Java
    >>> > knows where to find your classes. Asumming you're using bash:
    >>> > $> export CLASSPATH=$CLASSPATH:/usr/local/classes
    >>> >
    >>
    >>
    >> --
    >> Reuben D. Budiardja
    >> Department of Physics and Astronomy
    >> The University of Tennessee, Knoxville, TN
    >> ---------------------------------------------------------
    >> "To be a nemesis, you have to actively try to destroy
    >> something, don't you? Really, I'm not out to destroy
    >> Microsoft. That will just be a completely unintentional
    >> side effect."
    >> - Linus Torvalds -
    >>
    >>
    >> --
    >> redhat-list mailing list
    >> unsubscribe mailto:redhat-list-request@redhat.com?subject=unsubscribe
    >> https://www.redhat.com/mailman/listinfo/redhat-list
    >>
    >
    >
    > --
    > redhat-list mailing list
    > unsubscribe mailto:redhat-list-request@redhat.com?subject=unsubscribe
    > https://www.redhat.com/mailman/listinfo/redhat-list
    >

    -- 
    redhat-list mailing list
    unsubscribe mailto:redhat-list-request@redhat.com?subject=unsubscribe
    https://www.redhat.com/mailman/listinfo/redhat-list
    

  • Next message: Larry Brown: "RE: Setting RH9 for static IP"

    Relevant Pages

    • Re: How to avoid the message "Unknown source"?
      ... You haven't provided any source code and you haven't even identified the ... If you are getting a compiler error, javac, the java compiler, should be ... If you are geting a compile ... exception message that will give you a clue about your problem. ...
      (comp.lang.java.help)
    • Re: Java server wont run after reboot
      ... Working with classpaths in Java isn't too hard, ... package definitions in your source code. ... Execute from that directory, no classpath definition needed. ... Assuming that you compile your code in the same directory and deposit the ...
      (RedHat)
    • Re: creaping coupling......
      ... In C++ it would be trivial to break that source code dependency, ... When you compile a .java module, ... In Java and C# it's asserted at compile time. ...
      (comp.object)
    • package from hell
      ... my environmental variable classpath on W2K is ... Java Programming Center" written by Dana Nourie. ... The package consists of the main class named "DiveLog.java" and a series ... while in C:\divelog I used the following cmd to compile DiveLog.java. ...
      (comp.lang.java.help)
    • Re: Simplest Java app ever wont run. Why? -- CLASSPATH q..
      ... Never set your CLASSPATH environment variable, ... how then does java find the classes when it runs the program? ... I also use Tomcat, and also have no idea how Tomcat finds the system API classes.. ... compile, b/c I have it in a batch file I use to compile.. ...
      (comp.lang.java.help)