Java Having trouble compiling my java project. Help?

  • Thread starter Thread starter MarcL
  • Start date Start date
  • Tags Tags
    Java Project
Click For Summary
The discussion revolves around issues with compiling Java programs using a command line interface, specifically when using tutorialspoint.com as an online compiler. The user encounters a "file not found" error when attempting to compile their Java file, HelloWorld.java, despite successfully compiling another program, SongsAndApps.java. The confusion arises from the need for the class name to match the filename in Java, which is highlighted when introducing a new class, MyFirstProgram.Java. The user notes that the program works fine in Eclipse, indicating a potential misunderstanding of command line compilation. The advice provided emphasizes that when compiling multiple Java files, the correct command should include all relevant files, such as "javac -classpath . SongsAndApps.java MyFirstProgram.java," to avoid compilation issues. The importance of matching class names with filenames and understanding the command line compilation process is underscored.
MarcL
Messages
170
Reaction score
2
Hey so I have to compile a project... there are two parts to it, one where I just have to display a series of sentence and another one a bit more complicated... I am using tutorialspoint.com because I don't have any compiler on the desktop at school :/ It is unfortunately giving me this error:

"sh-4.2# javac HelloWorld.java
javac: file not found: HelloWorld.java
Usage: javac <options> <source files>
use -help for a list of possible options"

However, when I compiled my first program ( the one that I'll post afterwards,) it compiled fine on its own. Any help? ( I started java 2 weeks ago, so many stupid errors might be included, sorry !)

Code:
import java.util.Scanner;

 public class SongsAndApps{

  public static void main(String []args){
  
  Scanner prePay = new Scanner(System.in);
  
   int songBuy , appBuy1, appBuy, songBuy1 ;
  
   Double moneyOnCard, moneyLeft, moneyLeft2, moneyLeft3, moneyLeft4;
  
   final int appCost=3 , songCost= 7;
  
  System.out.println("Please input the amount of money on your card");
  moneyOnCard = prePay.nextDouble();
                   //Determine how much there is on the card from the user
  songBuy =  (int)(moneyOnCard / songCost) ;
                 //Determines how much song the user is able to buy
  appBuy  = (int)(moneyOnCard / appCost) ;
                 //Opposite of last equation, allows to know how much apps can be bought
  System.out.println("You can buy a maximum of " + songBuy + " songs or you can buy a maximum of " + appBuy + " apps");
  moneyLeft = moneyOnCard - (songBuy*songCost) ;
  moneyLeft2 = moneyOnCard - (appBuy*appCost) ;
                   // moneyLeft represent the money left on the card if songs are bought first and moneyLeft2 represents the amount left if apps are bought
 
   if (moneyLeft >= 3 );                     
  {  appBuy1 = (int)(moneyLeft / appCost);
  moneyLeft3 = moneyLeft - (appCost*appBuy1);
  System.out.println("You can buy " + appBuy1 + " app if you decide to buy the maximum amount of songs");
  System.out.println("Therefore, You have " + moneyLeft3 + " $ left on your card") ;}
  if (moneyLeft2 >=7);
  { songBuy1 = (int)(moneyLeft3 / songCost);
  moneyLeft4 = moneyLeft3 - (songCost*songBuy1);
  System.out.println("Otherwise. you can buy " + songBuy1 + " song(s) if you decide to buy the maximum amount of apps");
  System.out.println("You have " + moneyLeft4 + " $ left on your card") ; }
  }  
}

That worked fine when I had it in a project folder alone. However, when I added a new class to the project( the following one, it stopped working)

Code:
 class MyFirstProgram.Java {
   
  public static void main(String[] args) {
   
  System.out.println("Welcome to My First Java Program");
  System.out.println("This Program was written by: Marc-Andre Leclair");
  System.out.println("The assignment was done individually on January 30th, 2015 at 19:34");
  System.out.println("End of program");
  System.exit(0)   
  }
 }

However when I did something like that on eclipse it ran and compiled fine :/ any help?
 
Technology news on Phys.org
For Java the class name must match the filename so for your non working example the filename should be SongsAndApps.java
 
It is that name which is odd. I know that the class containing the main method has to bear the same name as the file name. That's why I am completely confused
 
It's a bit difficult to understand where you're having compile problems. At the beginning of your first post, you're trying to compile a HelloWorld program which is not in either of the code examples. However, from the code examples, it looks like you're trying to compile several programs that have a main() method at once using the command line. Usually an IDE like Eclipse will take care of that for you when you choose to compile a 'package' (as opposed to a single class). If that's what you're trying to do with the command line, then you would need to do something like this:

javac -classpath . SongsAndApps.java MyFirstProgram.java

Source: Easy command line Java compile
 
Learn If you want to write code for Python Machine learning, AI Statistics/data analysis Scientific research Web application servers Some microcontrollers JavaScript/Node JS/TypeScript Web sites Web application servers C# Games (Unity) Consumer applications (Windows) Business applications C++ Games (Unreal Engine) Operating systems, device drivers Microcontrollers/embedded systems Consumer applications (Linux) Some more tips: Do not learn C++ (or any other dialect of C) as a...

Similar threads

Replies
8
Views
2K
  • · Replies 8 ·
Replies
8
Views
2K
  • · Replies 3 ·
Replies
3
Views
3K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 3 ·
Replies
3
Views
1K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 0 ·
Replies
0
Views
626
  • · Replies 1 ·
Replies
1
Views
7K
  • · Replies 2 ·
Replies
2
Views
13K
  • · Replies 2 ·
Replies
2
Views
2K