# [javac] Zu blöd für -classpath?



## qeldroma (24. Jan 2006)

Hallo zusammen,

ich habe fremden Code bekommen, komplett mit kompilierten Klassen. Nun möchte ich den im gleichen Verzeichnis liegenden java-Code verändern und neu kompilieren, scheitere jedoch an der Bedienung von "javac", er findet die darüber liegenden Bibliotheken nicht.

Ich denke, der Verzeichnisbaum ist hilfreich, daher hier:

```
[root@radius WEB-INF]# ls -R
./classes:
activation.jar  LDAP_Manage  mail.jar  userManagement

./classes/LDAP_Manage:
ConnectBean.class  doc            Getattr.java      LdapManage.java   ManageBean.java   SearchBean.java
ConnectBean.java   Getattr.class  LdapManage.class  ManageBean.class  SearchBean.class

./classes/LDAP_Manage/doc:
allclasses-frame.html    constant-values.html  help-doc.html  index.html   overview-tree.html  packages.html
allclasses-noframe.html  deprecated-list.html  index-files    LDAP_Manage  package-list        stylesheet.css

./classes/LDAP_Manage/doc/index-files:
index-10.html  index-12.html  index-2.html  index-4.html  index-6.html  index-8.html
index-11.html  index-1.html   index-3.html  index-5.html  index-7.html  index-9.html

./classes/LDAP_Manage/doc/LDAP_Manage:
class-use         Getattr.html     ManageBean.html     package-summary.html  package-use.html
ConnectBean.html  LdapManage.html  package-frame.html  package-tree.html     SearchBean.html

./classes/LDAP_Manage/doc/LDAP_Manage/class-use:
ConnectBean.html  Getattr.html  LdapManage.html  ManageBean.html  SearchBean.html

./classes/userManagement:
bla.java  LoginBean.java  SendMailBean.java
```

Ich möchte nun die Files unter "./classes/userManagement" neu kompilieren, diese nutzen die ".jar"-Bibliotheken aus dem darüber liegenden Verzeichnis. Es ist am Code erstmal noch gar nichts verändert, lediglich neu kompiliert soll werden, um auszuschließen, das es an eventuellen Fehlern hängen bleibt, denn das Original kompiliert auf jeden Fall fehlerfrei.

Probiert habe ich:

```
[root@radius WEB-INF]# javac -classpath /tomcat/common/lib/:/tomcat/common/classes/:classes/ classes/userManagement/SendMailBean.java
```


```
[root@radius WEB-INF]# javac -classpath classes/ classes/userManagement/SendMailBean.java
```


```
javac -sourcepath classes/ -classpath classes/ classes/userManagement/SendMailBean.java
```


```
javac classes/userManagement/SendMailBean.java
```

Aufgerufen werden die ".jar's" in "SendMailBean" mittels:


```
package userManagement;
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
public class SendMailBean{
.....
.....
```

Grüße, Florian


----------



## qeldroma (30. Jan 2006)

Öhm... Kann mir da echt keiner helfen?


----------



## Bleiglanz (30. Jan 2006)

du musst zum übersetzen im Ordner classes sein


```
# cd classes

# javac -cp .:pfadzudir:foo.jar ...
```



> classpath /tomcat/common/lib/


das ist Mist, im classpath sind

1) Ordner, in denen nach .class Dateien gesucht wird

2) .jar Archive, in denen nach .class Dateien gesucht wird

aber es gibt keine Möglichkeit, einen Ordner anzugeben, so dass alle jar Dateien in dem Ordner durchsucht werden

Tipp: verwende ant


----------

