chocoteam / samples

Choco-solver in practice
BSD 4-Clause "Original" or "Old" License
11 stars 6 forks source link

Examples don't work #6

Closed ChrisJefferson closed 6 years ago

ChrisJefferson commented 6 years ago

When following the instructions, I get an error. After removing the split after -cp .:\, I get the following output:

> javac -d classes \
                                               -sourcepath ./src/main/java/ \
                                               -cp .:lib/choco-solver-4.0.5-with-dependencies.jar \
                                               src/main/java/org/chocosolver/samples/integer/Nonogram.java
src/main/java/org/chocosolver/samples/integer/Nonogram.java:17: error: package org.kohsuke.args4j does not exist
import org.kohsuke.args4j.Option;
                         ^
./src/main/java/org/chocosolver/samples/AbstractProblem.java:11: error: package org.chocosolver.pf4cs does not exist
import org.chocosolver.pf4cs.IProblem;
                            ^
./src/main/java/org/chocosolver/samples/AbstractProblem.java:12: error: package org.chocosolver.pf4cs does not exist
import org.chocosolver.pf4cs.SetUpException;
                            ^
./src/main/java/org/chocosolver/samples/AbstractProblem.java:14: error: package org.kohsuke.args4j does not exist
import org.kohsuke.args4j.CmdLineException;
                         ^
./src/main/java/org/chocosolver/samples/AbstractProblem.java:15: error: package org.kohsuke.args4j does not exist
import org.kohsuke.args4j.CmdLineParser;
                         ^
./src/main/java/org/chocosolver/samples/AbstractProblem.java:16: error: package org.kohsuke.args4j does not exist
import org.kohsuke.args4j.Option;
                         ^
./src/main/java/org/chocosolver/samples/AbstractProblem.java:26: error: cannot find symbol
public abstract class AbstractProblem implements IProblem<Model> {
                                                 ^
  symbol: class IProblem
./src/main/java/org/chocosolver/samples/AbstractProblem.java:42: error: cannot find symbol
    public void setUp(String... args) throws SetUpException{
                                             ^
  symbol:   class SetUpException
  location: class AbstractProblem
src/main/java/org/chocosolver/samples/integer/Nonogram.java:43: error: cannot find symbol
    @Option(name = "-d", aliases = "--data", usage = "Nonogram data ID.", required = false)
     ^
  symbol:   class Option
  location: class Nonogram
src/main/java/org/chocosolver/samples/integer/Nonogram.java:45: error: cannot find symbol
    @Option(name = "-f", aliases = "--frame", usage = "open a frame.", required = false)
     ^
  symbol:   class Option
  location: class Nonogram
./src/main/java/org/chocosolver/samples/AbstractProblem.java:31: error: cannot find symbol
    @Option(name = "-seed", usage = "Seed for Shuffle propagation engine.", required = false)
     ^
  symbol:   class Option
  location: class AbstractProblem
./src/main/java/org/chocosolver/samples/AbstractProblem.java:41: error: method does not override or implement a method from a supertype
    @Override
    ^
./src/main/java/org/chocosolver/samples/AbstractProblem.java:43: error: cannot find symbol
        CmdLineParser parser = new CmdLineParser(this);
        ^
  symbol:   class CmdLineParser
  location: class AbstractProblem
./src/main/java/org/chocosolver/samples/AbstractProblem.java:43: error: cannot find symbol
        CmdLineParser parser = new CmdLineParser(this);
                                   ^
  symbol:   class CmdLineParser
  location: class AbstractProblem
./src/main/java/org/chocosolver/samples/AbstractProblem.java:46: error: cannot find symbol
        } catch (CmdLineException e) {
                 ^
  symbol:   class CmdLineException
  location: class AbstractProblem
./src/main/java/org/chocosolver/samples/AbstractProblem.java:51: error: cannot find symbol
            throw new SetUpException("Invalid problem options");
                      ^
  symbol:   class SetUpException
  location: class AbstractProblem
./src/main/java/org/chocosolver/samples/AbstractProblem.java:58: error: method does not override or implement a method from a supertype
    @Override
    ^
./src/main/java/org/chocosolver/samples/AbstractProblem.java:66: error: method does not override or implement a method from a supertype
    @Override
    ^
./src/main/java/org/chocosolver/samples/AbstractProblem.java:70: error: method does not override or implement a method from a supertype
    @Override
    ^
./src/main/java/org/chocosolver/samples/AbstractProblem.java:82: error: cannot find symbol
        } catch (SetUpException e) {
                 ^
  symbol:   class SetUpException
  location: class AbstractProblem
./src/main/java/org/chocosolver/samples/AbstractProblem.java:107: error: cannot find symbol
        } catch (SetUpException e) {
                 ^
  symbol:   class SetUpException
  location: class AbstractProblem
./src/main/java/org/chocosolver/samples/AbstractProblem.java:110: error: cannot find symbol
        this.buildModel();
            ^
  symbol: method buildModel()
./src/main/java/org/chocosolver/samples/AbstractProblem.java:123: error: cannot find symbol
        this.solve();
            ^
  symbol: method solve()
src/main/java/org/chocosolver/samples/integer/Nonogram.java:51: error: method does not override or implement a method from a supertype
    @Override
    ^
src/main/java/org/chocosolver/samples/integer/Nonogram.java:88: error: method does not override or implement a method from a supertype
    @Override
    ^
25 errors
cprudhom commented 6 years ago

Hi,

Thank you for the bug report. There are some missing dependencies in README.md:

  1. ~/.m2/repository/args4j/args4j/2.33/args4j-2.33.jar
  2. ~.m2/repository/org/choco-solver/pf4cs/1.0.5/pf4cs-1.0.5.jar

I need to update instructions.

I previously download, thanks to maven, the missing jar files and were able to execute Nonogram:

javac -d classes -sourcepath ./src/main/java/ -cp .:~/.m2/repository/args4j/args4j/2.33/args4j-2.33.jar:~/.m2/repository/org/choco-solver/pf4cs/1.0.5/pf4cs-1.0.5.jar:lib/choco-solver-4.0.5-with-dependencies.jar src/main/java/org/chocosolver/samples/integer/Nonogram.java

java -cp classes:~/.m2/repository/args4j/args4j/2.33/args4j-2.33.jar:~/.m2/repository/org/choco-solver/pf4cs/1.0.5/pf4cs-1.0.5.jar:lib/choco-solver-4.0.5-with-dependencies.jar org.chocosolver.samples.integer.Nonogram -f -d rabbit

CP

cprudhom commented 6 years ago

I can provide a jar file with dependencies which allows me to reduce the steps to only two: downloading then executing. Would something like that be better for quick testing of samples or you prefer loading the source in an IDE, declare the classpath and play with the code ?