Discussions
Categories
- 197K All Categories
- 2.5K Data
- 546 Big Data Appliance
- 1.9K Data Science
- 450.9K Databases
- 221.9K General Database Discussions
- 3.8K Java and JavaScript in the Database
- 31 Multilingual Engine
- 552 MySQL Community Space
- 479 NoSQL Database
- 7.9K Oracle Database Express Edition (XE)
- 3.1K ORDS, SODA & JSON in the Database
- 556 SQLcl
- 4K SQL Developer Data Modeler
- 187.2K SQL & PL/SQL
- 21.4K SQL Developer
- 296.4K Development
- 17 Developer Projects
- 139 Programming Languages
- 293.1K Development Tools
- 111 DevOps
- 3.1K QA/Testing
- 646.1K Java
- 28 Java Learning Subscription
- 37K Database Connectivity
- 161 Java Community Process
- 105 Java 25
- 22.1K Java APIs
- 138.2K Java Development Tools
- 165.3K Java EE (Java Enterprise Edition)
- 19 Java Essentials
- 162 Java 8 Questions
- 86K Java Programming
- 81 Java Puzzle Ball
- 65.1K New To Java
- 1.7K Training / Learning / Certification
- 13.8K Java HotSpot Virtual Machine
- 94.3K Java SE
- 13.8K Java Security
- 205 Java User Groups
- 24 JavaScript - Nashorn
- Programs
- 475 LiveLabs
- 39 Workshops
- 10.2K Software
- 6.7K Berkeley DB Family
- 3.5K JHeadstart
- 5.7K Other Languages
- 2.3K Chinese
- 175 Deutsche Oracle Community
- 1.1K Español
- 1.9K Japanese
- 233 Portuguese
javac compiler

Hi everyall,
I'm trying to compile a java program on Linux system form command line.
The program is very simple. It includes only a class, which is in a package.
Practically my project is composed by a directory (HelloWorld) that contains two ones.
One is named "src", the other is called "bin".
In the first one, there is another directory (principale) where there is the java file (Saluto.java)
In this situation if I execute the command "javac -d ./bin/ ./src/principale/Saluto.java from ~/HelloWorld/ it works.
But if I execute "javac -d ./bin/ -sourcepath ./src principale/Saluto.java" or "javac -d ./bin/ -sourcepath ./src/principale Saluto.java" fomr the same point it doesn't.
in the html page https://docs.oracle.com/en/java/javase/14/docs/specs/man/javac.html#options it is explained that:
--source-path
path or-sourcepath
path- Specifies where to find source files. Except when compiling multiple modules together, this is the source code path used to search for class or interface definitions
- So "javac" should search source files in "path" (that are ~/HelloWorld/src/ or ~/HelloWorld/src/principale in case), but it shouldn't.
- Does anyone tell me what I'm doing wrong?
- Thanks very much
Answers
-
Is a package statement used? Is the src folder in the classpath? Please post the java class.
-
A bit experimenting shows that sourcepath is used to find additional Java source files but does not influence where the Saluto.java has to be located.
Thus, if class Saluto would make use of another class - let's say Pronto - inside the same package then sourcepath is used to find Pronto.java, but Saluto.java must be nevertheless fully qualified:
cd /tmp ; javac -d ~/HelloWorld/bin -sourcepath /usr/src/more ~/HelloWorld/src/principlale/Saluto.java