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.

Multitenancy

What is Multitenancy? Multitenancy is an architecture in which a single instance of a software application serves multiple customers. It gives the ability to use the same software and interfaces to configure resources and it isolates customer-specific traffic and data. Each customer is called a tenant. Tenants may be given the ability to configure some parts of the application, such as color of the user interface ( UI ) or business rules , but they cannot change the application's code . This means that although tenants are using the same building blocks in their configuration, the appearance or workflow of the application may be different for two tenants. Also, the Service Level Agreement (SLA) of each tenant can differ [1]. Multitenancy vs. Singletenancy: Multitenancy can be economical because software development and maintenance costs are shared. It can be contrasted with single-tenancy, an architecture in which each customer has their own software instance and ...

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...