Skip to main content

Cli.java won't compile in jahmm

Problem:

When you compile Cli.class in terminal or Eclipse, you may get the following error:

Cli.java:27: package be.ac.ulg.montefiore.run.jahmm.io does not exist import be.ac.ulg.montefiore.run.jahmm.io.FileFormatException; ^ Cli.java:54: cannot find symbol symbol : class AbnormalTerminationException
9 more errors

Solution:

You must to pass parameters to your class. The class takes 5 parameters which are:
  • Parameter 1: should be one of the following:
    • create: creates a new HMM description file,
    • print: prints a HMM
    • learn-kmeans: applies the k-Means algorithm
    • learn-bw: applies the Baum-Welch algorithm
    • generate:  generates an observation sequence given a HMM
    • distance-kl:  computes the distance between two HMMs
  • Parameter 2:
    • -opdf. It takes one of the following:
    • -r: argument describes that HMM will take 4 integers. For example, -r 4 means that HMM takes 0.25 0.25 0.25 0.25 observations probabilities. The model in Jahmm assign the same probabilities.
    • -ng: specify the number of gaussians distribution. For example, -ng 2.
    • -d: specify the vector dimension. For example, -d 2, means that the model will create a matrix of 2*2 probabilities.
    • -n: specify the number of states to build the model. For example, -n 4.
    • -o: specify the name of your output file. For example, -o  output.hmm.

From Eclipse:
  • Add your Junit.jar and jahmm-0.6.1.jar.
    • Right click on your project > Properties > Java Build Path > Libraries > Add JARS (if it is within your project folder), or Add External JARS (if the jar outside your project folder).
    • Apply.
  • Then,
    • Go to Cli.java that exists in cli in your source code folder.
    • Right click on Cli.java > Run As > Run Configurations > select Arguments tab and Enter:
      • create -opdf integer -r 4 -n 3 -o test.hmm
    • Then click Apply and Run.



The output will look like the following: (of course it will differ based on your configuration to the parameters)


Problem Source:

JAHMM User Guide:

Comments

Popular posts from this blog

Error Class names are only accepted if annotation processing is explicitly requested

Do you get the following error? Class names, 'Hello', are only accepted if annotation processing is explicitly requested 1 error In case you got this error, then you forget to add .java to the file name when you compile it So when you want to compile a file using cmd console window write the filename.java extension Example: Javac Hello.java If you write it in this way the error will go away. So don’t forget to include suffix with your file name during compilation.

An attempt was made to insert a node where it is not permitted

Do you face this Error while you are writing code to generate xml file from java? Exception in thread "main" org.w3c.dom.DOMException : HIERARCHY_REQUEST_ERR: An attempt was made to insert a node where it is not permitted.        at com.sun.org.apache.xerces.internal.dom.CoreDocumentImpl.insertBefore(Unknown Source)        at com.sun.org.apache.xerces.internal.dom.NodeImpl.appendChild(Unknown Source)        at generatexml.WriteXMLFile.main( WriteXMLFile.java:30 ) Well the answer is: Don't insert the node where it isn't permitted. Change your generated directory file path from 'C' to other directory ex, D or to any directory you have. Make sure the ‘appendChild’ is referring to the right element. Don’t appending twice, only make it once. Ex, //Writetoxml.java   Element rootElement = doc . createElement ( " Company " );   doc . appendChild ( ro...

Drive A not ready…the drive is not ready for use it's door may be open Please check drive A and make sure that a disk is inserted?

Does that happen to you!!! Well it happened to me. I got a message tell me “ Drive not ready the drive is not ready for use it's door may be open Please check drive A and make sure that a disk is inserted and that the drive door is closed?” and it gives me three options Continue, Cancel, and Try again Well the answer is so easy but first you should know what cause this problem to happen. Let say you have programs and one of your programs is checking for a floppy drive I'd guess antivirus. So you have two options to do that but first of all do the basic steps which are: scan your computer well with antivirus software, Defragment your hard drive, and do the windows disk clean up and error checking. If this step doesn’t work then pick one option from the following options: Option 1 Disabling the floppy controller in your Device Manager : a.        Right click on My Computer b.       Choose Manage c.   ...