Skip to Main Content

Java Programming

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

How do you run Java Puzzle Ball ?

9a14f127-8560-49af-a391-1434f9fe7f39Apr 27 2017 — edited Oct 30 2019

I've downloaded the JavaPuzzleBall jar file and now I'm trying to run it.

I've tried

java -jar JavaPuzzleBall.jar

java -cp JavaPuzzleBall.jar  javafxapplication01.JavaPuzzleBall

I've tried extracting the contents of the jar file into a directory and then, from this directory, running

java -cp .  javafxapplication01.JavaPuzzleBall

I've tried all the above using -classpath instead of -cp

In all cases the response I get is

Error: Could not find or load main class javafxapplication01.JavaPuzzleBall

I can see the JavaPuzzleBall.class file in the jar file in the correct location and when I extracted the contents it was there in the javafxapplication01 directory.

I've downloaded the jar file three times in case it had been corrupted, but still the same result.

Any ideas what the problem may be ?

Stuart

Comments

NickR2600-Oracle

So when would it be beneficial to have an abstract method in a super class? One answer would be because the sub classes have no shared functionality. Or in other words, because the functionality is so different between subclasses. Or because the functionality can't be defined yet.

In Java Puzzle Ball, I have an abstract class called GameObject. It's inherited by a lot of different concrete classes: bumpers, assignable behaviors, level geometry... And one if its responsibilities is to define what happens when a collision occurs. But I have to leave the collision effect method abstract. The geometry of all these objects are so dramatically different, there isn't any shared functionality I can write to define how the physics of all these different angles and shapes should work. The best I can do is write an abstract method as a promise to implement the functionality somewhere later down the inheritance structure.

pastedImage_0.png

AjayKumarGuttikonda

Thank you so much for taking time out and answering the question in very elaborated manner. I understand, the conclusion is Account class need not be abstract as all methods are implemented and also there is no problem Account class being abstract as the abstract class by definition can have all methods implemented. Can you please also explain why in this case it is beneficial to have Account class as abstract since we have implemented all methods.

NickR2600-Oracle

You got it.  I'm glad you're enjoying the course

It's more of a design choice in this example.  Even though Account could technically exist as a concrete class, I only meant for it to be a container for all the fields and methods shared by savings and checking accounts.  So to reinforce that decision and prevent instances of Accounts from getting created, the class is left abstract.

One other thing to consider is that Accounts don't have an accountType field, but savings and checking account classes do.  Looking back, maybe I should have written an abstract method into the Account class to somehow enforce the need for this field.

1 - 3

Post Details

Added on Apr 27 2017
9 comments
1,936 views