Java package problem

Started by
4 comments, last by BitMaster 11 years, 9 months ago
I'm having a problem creating and using my own packages(and subpackages) for a game I'm writing in Java. I'd also like to use a package that allows for .mp3 audio files rather than the massive .wav .
I know the declaration is:

package name; (First line)
..rest of code

I've tried fiddling with the class path (spelt "classpath" , does case matter?) for both the system and user, and also compiled with a set class path, but didn't get it working. I'm using Notepad++, so I'm compiling in command prompt. ( I know IDEs are important and improve efficiency but I want to learn the bones of the language first and know the imports I'm dealing with rather than have it fill it in for me as I type).

So what am I doing wrong? I think it's something to do with the classpath so could someone give me a step by step for setting it up? Otherwise, am I missing something else?


Also, slightly related: Any tips for game programming in Java, besides don't do it ( tongue.png ), or game programming in general? How can I make sure my game will use as little memory as possible, and run as quickly as possible? I've made all my images point to the same static images rather than create a new one for each object (this really, really helped) , and used bytes instead of other primitives when possible. Specifically I'm programming a strictly 2d game if there's specific pointers for that.
Advertisement
Hey camcd,

I'm not sure what the exact problem is with your packages but let me tell you how mine works.
First of I'm using an IDE (eclipse to be exact).

When creating my packages I make sure I have a main package (which is the name of the game) and then the sub package.
For example:

gamename.entities[/quote]

Every single class that has anything to do with entities will be put in the entities package.

package gamename.entities;

the hierarchy of the files should be something like:

-src
[indent=1]-gamename

[indent=2]-entities
[indent=2]-model
[indent=2]-helpers
[indent=2]-views
[indent=2]-starter
[indent=2]-....

As for other tips you might want to use 2D libraries like lwjgl or slick2D (which is a "fork" or not sure how its called from lwjgl).
Oh and i suppose you could find some great tutorials on youtube (instead of plain text websites).

If you use lwjgl check this link. He has some amazing tutorials.

Regards
To reiterate the most important part of goowik's post: if you want people to help you, give them the tools to do so. You didn't say what you have tried and you haven't described the error, just that it does not seem to work. I could add half hour worth of post here trying to add more possible gotchas but I don't have the time right now and most of it would be wasted.
I thought I was (though I did ramble about random things, just a little excited tongue.png ), sorry. I'm having trouble importing and using other packages besides those in java.* or javax.* .

When I create my own package, I get an error saying : "package "x" doesn't exist" when I try to compile. The class can even be in the same directory as main.

The current organization (or lack of) of my program is as follows

MyGame Folder:
class x, class x1, class x2, ... class xn .

So when I do javac *.java it looks in the current directory (MyGame) that contains my main class and finds all the other classes.

I want to add a folder containing classes related to one thing and all the classes in that folder would be in the same package , so it would be:

MyGame Folder:
MyPackage 1:
class p, class p1 ... class pn

class x

Where I could import one of the "p" classes from class x (which would contain main) with a statement like:

import MyGame.MyPackage1.class p;

and can still compile with javac . I want to avoid the use of an IDE before I know how to do it myself.
Alright, sorry to bother you guys. I got it working. My classpath wasn't set correctly and I didn't write the package statement properly. Thanks.
I'm too rusty with the command line for the compiler but http://docs.oracle.com/javase/1.4.2/docs/tooldocs/windows/javac.html seems to describe what you need as the first example.

That aside, your import statement is wrong like this. It would have to be either
import MyGame.MyPackage1.p;
or
import MyGame.MyPackage1.*;

This topic is closed to new replies.

Advertisement