# Having trouble compiling my java project. Help?

1. Feb 3, 2015

### MarcL

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... Im 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
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 (Text):

import java.util.Scanner;

public class SongsAndApps{

public static void main(String []args){

Scanner prePay = new Scanner(System.in);

Double moneyOnCard, moneyLeft, moneyLeft2, moneyLeft3, moneyLeft4;

final int appCost=3 , songCost= 7;

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);
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 (Text):

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?

2. Feb 3, 2015

### Staff: Mentor

For Java the class name must match the filename so for your non working example the filename should be SongsAndApps.java

3. Feb 3, 2015

### MarcL

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 im completely confused

4. Feb 6, 2015

### Borg

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