Anakha
Anakha

Reputation: 53

Cygwin and Java

I am new to Cygwin. What are the normal steps that are followed when setting Java classpath and all for running programs in Cygwin?

Upvotes: 4

Views: 4361

Answers (5)

l__LG__l
l__LG__l

Reputation: 101

1) Install JDK and check the installation path

Java binaries may be under "Program Files" or "Program Files (x86)": those white spaces will likely affect the behaviour.

2) Preliminary info

In order to set up env variables correctly, I suggest gathering some info before starting: - Open DOS shell (type cmd into 'RUN' box) - go to C: - type "dir /x" and take note of DOS names (with ~) for "Program Files *" folders

3) Cygwin configuration:

  • go under C:\cygwin\home\
  • open .bash_profile and add the following two lines (conveniently customized in order to match you actual JDK path)
export JAVA_HOME="/cygdrive/c/PROGRA~1/Java/jdk1.8.0_65"
export PATH="$JAVA_HOME/bin:$PATH"

Now from Cygwin launch

javac -version

to check if the configuration is successful.

Upvotes: 0

trooper31
trooper31

Reputation: 202

I found it easier just to type cmd in cygwin . This allows you to run dos like commands in cygwin . you should be able to start tomcat using the startup.bat file from the terminal

Upvotes: 0

brianegge
brianegge

Reputation: 29872

I'd suggest taking a look at catalina.sh. This shell script launches java under both unix and cygwin environments. Currently, OpenJDK is not part of the Cygwin installer, and people running Java use a Sun build MS executable. This means the paths must be converted to Windows, and when Java is running it will be the same as if it were launched from a batch file.

Specifcally, catalina.sh changes these paths using the cygpath program:

case "`uname`" in
CYGWIN*) cygwin=true;;
esac

if $cygwin; then
  JAVA_HOME=`cygpath --absolute --windows "$JAVA_HOME"`
  JRE_HOME=`cygpath --absolute --windows "$JRE_HOME"`
  CATALINA_HOME=`cygpath --absolute --windows "$CATALINA_HOME"`
  CATALINA_BASE=`cygpath --absolute --windows "$CATALINA_BASE"`
  CATALINA_TMPDIR=`cygpath --absolute --windows "$CATALINA_TMPDIR"`
  CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
  [ -n "$JSSE_HOME" ] && JSSE_HOME=`cygpath --absolute --windows "$JSSE_HOME"`
  JAVA_ENDORSED_DIRS=`cygpath --path --windows "$JAVA_ENDORSED_DIRS"`
fi

Upvotes: 5

perdian
perdian

Reputation: 2843

If I'm not mistaken, Cygwin inherits the Classpath settings from the "normal" windows settings, so if you setup your Classpath within the system properties both Windows and Cygwin should be able to use it.

Upvotes: 1

GaryF
GaryF

Reputation: 24340

It sounds like you need to convert between Windows and Unix-style paths (your Java probably wants Windows paths, your Cygwin talks UNIX). Here is a guide to convert between Unix and Windows paths in Cygwin, using the cygpath util.

Upvotes: 0

Related Questions