...
Test Eclipse
Open eclipse and select your workspace. If you start out with a blue screen with some circular buttons saying Welcome, Tutorial, etc., click Go to Workbench. Otherwise, you are already at the workbench. Go to File → New → Java Project. Name your project sandbox
, then click the button Finish. You now have a new project!
In the Package Explorer (left side) right click the arrow next to sandbox
to expand the project. Right click on the src
folder and then go to new → class. Name the class TestClass
. Under "Which method stubs would you like to create?" check the box next to public static void main(String[] args)
. Hit the Finish button. Then replace
Code Block |
---|
Eclipse {rarr} {rrar} Open eclipse and select your workspace. If you start out with a blue screen with some circular buttons saying _Welcome_, _Tutorial_, etc., click _Go to Workbench_. Otherwise, you are already at the workbench. Go to _File -> New -> Java Project_. Name your project {{sandbox}}, then click the button {{Finish}}. You now have a new project! In the Package Explorer (left side) right click the arrow next to {{sandbox}} to expand the project. Right click on the {{src}} folder and then go to {{new -> class}}. Name the class {{TestClass}}. Under "Which method stubs would you like to create?" check the box next to {{public static void main(String[] args)}}. Hit the "Finish" button. Then replace {code}// TODO Auto-generated method stub{code} by {code} |
by
Code Block |
---|
System.out.println("Hello World!"){code} Save the file {{; |
Save the file TestClass.java
...
by
...
hitting
...
Ctrl+s
...
or
...
the
...
save
...
button
...
(top
...
left
...
on
...
the
...
menu
...
bar).
...
To
...
run
...
your
...
code,
...
go
...
to
...
the
...
top
...
center
...
of
...
the
...
menu
...
bar
...
and
...
hit
...
the
...
run
...
icon
...
(its
...
a
...
green
...
circle
...
with
...
a
...
white
...
arrow
...
inside),
...
or
...
go
...
to
...
the
...
menu
...
bar
...
and
...
hit
...
Run → Run. The Console should pop up on the bottom with the output of your program.
Test Cplex from Eclipse
Open Eclipse and expand the sandbox
project we created previously. Create a new class called KnapsackSolver
. Next we are going to connect to Cplex. Right click on sandbox
in the package explorer and select new->folder
. Give it the name lib
and click Finish. Find the file cplex.jar in your Cplex installation. On my Windows installation, it was located at
- Windows:
C:\Program Files\IBM\ILOG\CPLEX_Studio125\cplex\lib\
...
cplex.jar
- Linux:
/opt/IBM/ILOG/CPLEX_Studio125/cplex/lib/cplex.jar
- Mac:
/Users/<yourusername>/Applications/IBM/ILOG/CPLEX_Studio125/cplex/lib/cplex.jar
Copy the file cplex.jar and paste it in the newly created lib
folder in our project. Right click on sandbox
in the package explorer, then select Build Path → Configure Build Path... Select the Libraries tab, then hit the Add JARs button (see here for an explanation of what all these buttons do). Select the file sandbox/lib/cplex.jar
...
,
...
then
...
hit
...
OK
...
until
...
we
...
have
...
exited
...
all
...
the
...
menus.
...
Open
...
up
...
KnapsackSolver
...
and
...
replace
...
the
...
text
...
of
...
the
...
file
...
with
...
the
...
following:
Code Block |
---|
} import java.util.Arrays; import ilog.concert.IloException; import ilog.concert.IloIntVar; import ilog.cplex.IloCplex; public class KnapsackSolver { public static double[] solveKnapsack(double[] values, double[] weights, double capacity){ if(weights.length != values.length){ throw new RuntimeException("values.length was " + values.length + " and weights.length was" + weights.length + " but they must be the same"); } try { IloCplex cplex = new IloCplex(); IloIntVar[] x = cplex.boolVarArray(values.length); cplex.addLe(cplex.scalProd(x, weights), capacity); cplex.addMaximize(cplex.scalProd(x, values)); cplex.solve(); return cplex.getValues(x); } catch (IloException e) { throw new RuntimeException(); } } public static void main(String[] args){ double[] values = new double[]{2,4,5,6}; double[] weights= new double[]{2,3,4,7}; double capacity = 8; double[] solution = solveKnapsack(values,weights,capacity); System.out.println(Arrays.toString(solution)); } } {code} |
Run
...
the
...
code.
...
The
...
final
...
line
...
of
...
output
...
should
...
of
...
course
...
be
...
[0.0,
...
1.0,
...
1.0,
...
0.0
...
]
...
,
...
up
...
to
...
some
...
precision. Upload the output of the program as your assignment here If you get the error
Exception in thread "main" java.lang.UnsatisfiedLinkError: ilog.cplex.Cplex.CPXopenCPLEX([I)J
then your PATH was not set properly. The easiest way to deal with this is to add a virtual machine argument to the Run Configuration. Starting from the menu bar at the top, select Run → Run Configurations... and then on the left, make sure Java Application → KnapsackSolver is selected. In the center panel, pick the ( x )=Arguments tab. In the second box, titled VM Arguments, add the line:
- Linux:
-Djava.library.path=/opt/ibm/ILOG/CPLEX_Studio125/cplex/bin/x86-64_sles10_4.1
- Windows:
-Djava.library.path="C:\Program Files\IBM\ILOG\CPLEX_Studio125\cplex\bin\x64_win64"
- Mac:
-Djava.library.path=/Users/<yourusername>/Applications/IBM/ILOG/CPLEX_Studio125/cplex/bin/x86-64_darwin
As you can see, the VM argument is telling java the directory that the c code of cplex is located in.
Warning | ||
---|---|---|
| ||
If your VM argument would have a space, you need to put quotes around it, as in the Windows example above. |
Finally, hit Run on the bottom.