How to add LibSVM class to WEKA classpath on a Mac
Solution 1
Here is another extremely easy way to add LibSVM support to WEKA on OS X (no command line needed):
- Download LibSVM from here
- Go to /Applications folder on your Mac (the folder where the Weka app is installed)
- Right click on Weka > Chose "Show Package Contents"
- Copy libsvm.jar to /Applications/Weka.app/Contents/Resources/Java
- open /Applications/Weka.app/Contents/Info.plist in your favorite text editor
- change
<string>$JAVAROOT/weka.jar</string>
to<string>$JAVAROOT/weka.jar:$JAVAROOT/libsvm.jar</string>
(you can also adjust the heap size here) - Save and start weka
Solution 2
You can put libsvm.jar
in a folder of your choice, e.g. ~/Library/Java
, and then run weka from the command-line as follows:
$ java -Xmx512m -classpath /Users/chl/weka/weka.jar:/Library/Java/libsvm.jar weka.gui.GUIChooser
You can also update your CLASSPATH
to reflect locations where *.jar
files can be found. I have the following in my .profile
:
export CLASSPATH="/Users/chl/weka/weka.jar:~/Library/Java/*"
(You will need to replace /Users/chl/weka
to reflect the correct location of your weka.jar
; usually, it is located at the top of the directory if you downloaded the source files, or under weka-3-7-3.app/Contents/Resources/Java/
if you use the bundled app.)
This way, the first command to start weka GUI simplifies to
$ java -classpath $CLASSPATH:weka.jar:libsvm.jar weka.gui.GUIChooser
Don't use java -jar
since it will override the CLASSPATH
, as discussed here.
I also have an alias in my .bash_aliases
for wrapping all that stuff:
alias weka='java -Xmx512m -classpath $CLASSPATH:weka.jar'
in order to use weka from the command-line as, e.g.
$ weka weka.classifiers.trees.RandomTree -t iris.arff -i
Solution 3
1) Copy libsvm.jar
found here into the Java folder in the package content of the Weka.app:
<path-to-Weka.app>/Weka.app/Contents/Java/
2) Add this line to your .bash_profile or similar configuration file:
export CLASSPATH="<path-to-Weka.app>/Weka.app/Contents/Java/weka.jar:<path-to-Weka.app>/Weka.app/Contents/Java/libsvm.jar"
Note: you should replace <path-to-Weka.app>
by your own path. It could look like /Applications/JavaApp/weka-3-6-11-oracle-jvm.app
.
Solution 4
Download the libsvm files and past them in the working directory of weka. Now goes to Control Panel->System->Advance System Setting-> and Edit the Environment Variable, Select the Class_Path variable and copy all that path along with the file name. i.e. C:\Program Files\Weka\Libsvm.jar; and click ok-ok-ok and Restart the weka
Dan
Husband, father, thinker, anachronism detector, coder, and geek. That sentence was intentionally written with an Oxford Comma.
Updated on June 19, 2022Comments
-
Dan almost 2 years
I am running Max OS X 10.7 Lion and I want to use WEKA with LibSVM from command line. I get this error:
Problem evaluating classifier: libsvm classes not in CLASSPATH!
I found the LibSVM library here. I need to add it to my Java classpath so that WEKA can find it. The download contains several files, shown below. I don't know how to add them to my classpath for Java.
I am attempting to use the LibSVM classifier in WEKA because it is preferable for me over SMO. I am also unsure if this means the Java classpath or if it is specific to WEKA. I also don't know where to get these classes from. Any help is appreciated.
-
Dan over 12 yearsThanks! I will try this out this evening (and mark this as the accepted answer if it works). Thanks again,
-
chl about 12 years@DanO'Day Did you have a chance to try the above. Did that work?
-
Dan about 12 yearsI apologize for not getting back to this. Yes, this worked great! Thanks,
-
eayurt over 10 yearsThank you for solving but I have a problem is including this one "evaluating classifier rand". How can I handle it?