From c6420ba8e625f4650c90be947351d9f3cecdf425 Mon Sep 17 00:00:00 2001 From: Mizux Seiha Date: Fri, 11 Sep 2020 03:07:18 +0200 Subject: [PATCH] make(java): Migrate samples to maven (#202) - Factorise makefile code using advanced make function - Use the Loader in samples --- makefiles/Makefile.java.mk | 111 ++++++++---------- ortools/algorithms/samples/Knapsack.java | 10 +- .../samples/SimpleCpProgram.java | 5 +- .../samples/SimpleRoutingProgram.java | 6 +- ortools/constraint_solver/samples/Tsp.java | 6 +- .../samples/TspCircuitBoard.java | 6 +- .../constraint_solver/samples/TspCities.java | 6 +- .../samples/TspDistanceMatrix.java | 6 +- ortools/constraint_solver/samples/Vrp.java | 6 +- .../samples/VrpCapacity.java | 6 +- .../samples/VrpDropNodes.java | 6 +- .../samples/VrpGlobalSpan.java | 6 +- .../samples/VrpInitialRoutes.java | 6 +- .../samples/VrpPickupDelivery.java | 6 +- .../samples/VrpPickupDeliveryFifo.java | 6 +- .../samples/VrpPickupDeliveryLifo.java | 6 +- .../samples/VrpResources.java | 6 +- .../samples/VrpStartsEnds.java | 6 +- .../samples/VrpTimeWindows.java | 6 +- .../samples/VrpWithTimeLimit.java | 6 +- .../linear_solver/samples/AssignmentMip.java | 6 +- .../linear_solver/samples/BinPackingMip.java | 6 +- .../samples/LinearProgrammingExample.java | 6 +- .../linear_solver/samples/MipVarArray.java | 5 +- .../samples/MultipleKnapsackMip.java | 6 +- .../samples/SimpleLpProgram.java | 6 +- .../samples/SimpleMipProgram.java | 6 +- ortools/sat/samples/AssignmentSat.java | 6 +- ortools/sat/samples/BinPackingProblemSat.java | 6 +- ortools/sat/samples/BoolOrSampleSat.java | 6 +- ortools/sat/samples/ChannelingSampleSat.java | 6 +- ortools/sat/samples/CpIsFunSat.java | 6 +- .../EarlinessTardinessCostSampleSat.java | 6 +- ortools/sat/samples/IntervalSampleSat.java | 6 +- ortools/sat/samples/LiteralSampleSat.java | 6 +- ortools/sat/samples/MultipleKnapsackSat.java | 6 +- ortools/sat/samples/NoOverlapSampleSat.java | 6 +- .../samples/OptionalIntervalSampleSat.java | 6 +- .../sat/samples/RabbitsAndPheasantsSat.java | 6 +- ortools/sat/samples/RankingSampleSat.java | 6 +- ortools/sat/samples/ReifiedSampleSat.java | 6 +- .../SearchForAllSolutionsSampleSat.java | 6 +- ortools/sat/samples/SimpleSatProgram.java | 6 +- .../sat/samples/SolutionHintingSampleSat.java | 6 +- ...ndPrintIntermediateSolutionsSampleSat.java | 6 +- .../samples/SolveWithTimeLimitSampleSat.java | 6 +- .../sat/samples/StepFunctionSampleSat.java | 6 +- .../samples/StopAfterNSolutionsSampleSat.java | 6 +- 48 files changed, 146 insertions(+), 249 deletions(-) diff --git a/makefiles/Makefile.java.mk b/makefiles/Makefile.java.mk index eefa09ea44..6e4d72eec5 100644 --- a/makefiles/Makefile.java.mk +++ b/makefiles/Makefile.java.mk @@ -379,41 +379,6 @@ $(CLASS_DIR)/%: $(CONTRIB_EX_DIR)/%.java $(JAVA_ORTOOLS_JAR) | $(CLASS_DIR) -cp $(LIB_DIR)$Scom.google.ortools.jar$(CPSEP)$(LIB_DIR)$Sprotobuf.jar \ $(CONTRIB_EX_PATH)$S$*.java -$(CLASS_DIR)/%: $(SRC_DIR)/ortools/algorithms/samples/%.java $(JAVA_ORTOOLS_JAR) | $(CLASS_DIR) - -$(DELREC) $(CLASS_DIR)$S$* - -$(MKDIR_P) $(CLASS_DIR)$S$* - "$(JAVAC_BIN)" -encoding UTF-8 -d $(CLASS_DIR)$S$* \ - -cp $(LIB_DIR)$Scom.google.ortools.jar$(CPSEP)$(LIB_DIR)$Sprotobuf.jar \ - ortools$Salgorithms$Ssamples$S$*.java - -$(CLASS_DIR)/%: $(SRC_DIR)/ortools/constraint_solver/samples/%.java $(JAVA_ORTOOLS_JAR) | $(CLASS_DIR) - -$(DELREC) $(CLASS_DIR)$S$* - -$(MKDIR_P) $(CLASS_DIR)$S$* - "$(JAVAC_BIN)" -encoding UTF-8 -d $(CLASS_DIR)$S$* \ - -cp $(LIB_DIR)$Scom.google.ortools.jar$(CPSEP)$(LIB_DIR)$Sprotobuf.jar \ - ortools$Sconstraint_solver$Ssamples$S$*.java - -$(CLASS_DIR)/%: $(SRC_DIR)/ortools/graph/samples/%.java $(JAVA_ORTOOLS_JAR) | $(CLASS_DIR) - -$(DELREC) $(CLASS_DIR)$S$* - -$(MKDIR_P) $(CLASS_DIR)$S$* - "$(JAVAC_BIN)" -encoding UTF-8 -d $(CLASS_DIR)$S$* \ - -cp $(LIB_DIR)$Scom.google.ortools.jar$(CPSEP)$(LIB_DIR)$Sprotobuf.jar \ - ortools$Sgraph$Ssamples$S$*.java - -$(CLASS_DIR)/%: $(SRC_DIR)/ortools/linear_solver/samples/%.java $(JAVA_ORTOOLS_JAR) | $(CLASS_DIR) - -$(DELREC) $(CLASS_DIR)$S$* - -$(MKDIR_P) $(CLASS_DIR)$S$* - "$(JAVAC_BIN)" -encoding UTF-8 -d $(CLASS_DIR)$S$* \ - -cp $(LIB_DIR)$Scom.google.ortools.jar$(CPSEP)$(LIB_DIR)$Sprotobuf.jar \ - ortools$Slinear_solver$Ssamples$S$*.java - -$(CLASS_DIR)/%: $(SRC_DIR)/ortools/sat/samples/%.java $(JAVA_ORTOOLS_JAR) | $(CLASS_DIR) - -$(DELREC) $(CLASS_DIR)$S$* - -$(MKDIR_P) $(CLASS_DIR)$S$* - "$(JAVAC_BIN)" -encoding UTF-8 -d $(CLASS_DIR)$S$* \ - -cp $(LIB_DIR)$Scom.google.ortools.jar$(CPSEP)$(LIB_DIR)$Sprotobuf.jar \ - ortools$Ssat$Ssamples$S$*.java - $(LIB_DIR)/%$J: $(CLASS_DIR)/% | $(LIB_DIR) -$(DEL) $(LIB_DIR)$S$*.jar "$(JAR_BIN)" cvf $(LIB_DIR)$S$*.jar -C $(CLASS_DIR)$S$* . @@ -433,31 +398,6 @@ rjava_%: $(CONTRIB_EX_DIR)/%.java $(LIB_DIR)/%$J FORCE -cp $(LIB_DIR)$S$*$J$(CPSEP)$(LIB_DIR)$Scom.google.ortools.jar$(CPSEP)$(LIB_DIR)$Sprotobuf.jar \ com.google.ortools.contrib.$* $(ARGS) -rjava_%: $(SRC_DIR)/ortools/algorithms/samples/%.java $(LIB_DIR)/%$J FORCE - "$(JAVA_BIN)" -Xss2048k $(JAVAFLAGS) \ - -cp $(LIB_DIR)$S$*$J$(CPSEP)$(LIB_DIR)$Scom.google.ortools.jar$(CPSEP)$(LIB_DIR)$Sprotobuf.jar \ - com.google.ortools.algorithms.samples.$* $(ARGS) - -rjava_%: $(SRC_DIR)/ortools/constraint_solver/samples/%.java $(LIB_DIR)/%$J FORCE - "$(JAVA_BIN)" -Xss2048k $(JAVAFLAGS) \ - -cp $(LIB_DIR)$S$*$J$(CPSEP)$(LIB_DIR)$Scom.google.ortools.jar$(CPSEP)$(LIB_DIR)$Sprotobuf.jar \ - com.google.ortools.constraintsolver.samples.$* $(ARGS) - -rjava_%: $(SRC_DIR)/ortools/graph/samples/%.java $(LIB_DIR)/%$J FORCE - "$(JAVA_BIN)" -Xss2048k $(JAVAFLAGS) \ - -cp $(LIB_DIR)$S$*$J$(CPSEP)$(LIB_DIR)$Scom.google.ortools.jar$(CPSEP)$(LIB_DIR)$Sprotobuf.jar \ - com.google.ortools.graph.samples.$* $(ARGS) - -rjava_%: $(SRC_DIR)/ortools/linear_solver/samples/%.java $(LIB_DIR)/%$J FORCE - "$(JAVA_BIN)" -Xss2048k $(JAVAFLAGS) \ - -cp $(LIB_DIR)$S$*$J$(CPSEP)$(LIB_DIR)$Scom.google.ortools.jar$(CPSEP)$(LIB_DIR)$Sprotobuf.jar \ - com.google.ortools.linearsolver.samples.$* $(ARGS) - -rjava_%: $(SRC_DIR)/ortools/sat/samples/%.java $(LIB_DIR)/%$J FORCE - "$(JAVA_BIN)" -Xss2048k $(JAVAFLAGS) \ - -cp $(LIB_DIR)$S$*$J$(CPSEP)$(LIB_DIR)$Scom.google.ortools.jar$(CPSEP)$(LIB_DIR)$Sprotobuf.jar \ - com.google.ortools.sat.samples.$* $(ARGS) - .PHONY: test_java_algorithms_samples # Build and Run all Java Algorithms Samples (located in ortools/algorithms/samples) test_java_algorithms_samples: \ rjava_Knapsack @@ -685,6 +625,57 @@ endif cd $(TEMP_JAVA_DIR)$S$(JAVA_ORTOOLS_PROJECT) && "$(MVN_BIN)" package cd $(TEMP_JAVA_DIR)$S$(JAVA_ORTOOLS_PROJECT) && "$(MVN_BIN)" install +############################# +## Java Examples/Samples ## +############################# +JAVA_SRC_DIR := src/main/java/com/google/ortools +JAVA_SRC_PATH := $(subst /,$S,$(JAVA_SRC_DIR)) + +SAMPLES := algorithms graph constraint_solver linear_solver sat + +define java-sample-target +$$(TEMP_JAVA_DIR)/$1: | $$(TEMP_JAVA_DIR) + -$$(MKDIR) $$(TEMP_JAVA_DIR)$$S$1 + +$$(TEMP_JAVA_DIR)/$1/%: \ + $$(SRC_DIR)/ortools/$1/samples/%.java \ + | $$(TEMP_JAVA_DIR)/$1 + -$$(MKDIR) $$(TEMP_JAVA_DIR)$$S$1$$S$$* + +$$(TEMP_JAVA_DIR)/$1/%/pom.xml: \ + $${SRC_DIR}/ortools/java/pom-sample.xml.in \ + | $$(TEMP_JAVA_DIR)/$1/% + $$(SED) -e "s/@JAVA_PACKAGE@/$$(JAVA_ORTOOLS_PACKAGE)/" \ + ortools$$Sjava$$Spom-sample.xml.in \ + > $$(TEMP_JAVA_DIR)$$S$1$$S$$*$$Spom.xml + $$(SED) -i -e 's/@JAVA_SAMPLE_PROJECT@/$$*/' \ + $$(TEMP_JAVA_DIR)$$S$1$$S$$*$$Spom.xml + $$(SED) -i -e 's/@PROJECT_VERSION@/$$(OR_TOOLS_VERSION)/' \ + $$(TEMP_JAVA_DIR)$$S$1$$S$$*$$Spom.xml + $$(SED) -i -e 's/@JAVA_PROJECT@/$$(JAVA_ORTOOLS_PROJECT)/' \ + $$(TEMP_JAVA_DIR)$$S$1$$S$$*$$Spom.xml + +$$(TEMP_JAVA_DIR)/$1/%/$$(JAVA_SRC_DIR)/%.java: \ + $$(SRC_DIR)/ortools/$1/samples/%.java \ + | $$(TEMP_JAVA_DIR)/$1/% + $$(MKDIR_P) $$(TEMP_JAVA_DIR)$$S$1$$S$$*$$S$$(JAVA_SRC_PATH) + $$(COPY) $$(SRC_DIR)$$Sortools$$S$1$$Ssamples$$S$$*.java \ + $$(TEMP_JAVA_DIR)$$S$1$$S$$*$$S$$(JAVA_SRC_PATH) + +rjava_%: \ + java_package \ + $$(SRC_DIR)/ortools/$1/samples/%.java \ + $$(TEMP_JAVA_DIR)/$1/%/pom.xml \ + $$(TEMP_JAVA_DIR)/$1/%/$$(JAVA_SRC_DIR)/%.java \ + FORCE + cd $$(TEMP_JAVA_DIR)$$S$1$$S$$* && "$$(MVN_BIN)" compile + cd $$(TEMP_JAVA_DIR)$$S$1$$S$$* && "$$(MVN_BIN)" exec:java \ + -Dexec.mainClass=com.google.ortools.$2.samples.$$* $$(ARGS) + +endef + +$(foreach sample,$(SAMPLES),$(eval $(call java-sample-target,$(sample),$(subst _,,$(sample))))) + ############# ## DEBUG ## ############# diff --git a/ortools/algorithms/samples/Knapsack.java b/ortools/algorithms/samples/Knapsack.java index 15524c756e..a676a4af63 100644 --- a/ortools/algorithms/samples/Knapsack.java +++ b/ortools/algorithms/samples/Knapsack.java @@ -14,18 +14,13 @@ // [START program] package com.google.ortools.algorithms.samples; // [START import] +import com.google.ortools.Loader; import com.google.ortools.algorithms.KnapsackSolver; import java.util.ArrayList; // [END import] -/** - * Sample showing how to model using the knapsack solver. - * - */ +/** Sample showing how to model using the knapsack solver. */ public class Knapsack { - static { - System.loadLibrary("jniortools"); - } private Knapsack() {} private static void solve() { @@ -70,6 +65,7 @@ public class Knapsack { } public static void main(String[] args) throws Exception { + Loader.loadNativeLibraries(); Knapsack.solve(); } } diff --git a/ortools/constraint_solver/samples/SimpleCpProgram.java b/ortools/constraint_solver/samples/SimpleCpProgram.java index 3c1b2c95bf..3e75a485a8 100644 --- a/ortools/constraint_solver/samples/SimpleCpProgram.java +++ b/ortools/constraint_solver/samples/SimpleCpProgram.java @@ -14,6 +14,7 @@ // [START program] package com.google.ortools.constraintsolver.samples; // [START import] +import com.google.ortools.Loader; import com.google.ortools.constraintsolver.DecisionBuilder; import com.google.ortools.constraintsolver.IntVar; import com.google.ortools.constraintsolver.Solver; @@ -22,14 +23,12 @@ import java.util.logging.Logger; /** Simple CP Program.*/ public class SimpleCpProgram { - static { - System.loadLibrary("jniortools"); - } private SimpleCpProgram() {} private static final Logger logger = Logger.getLogger(SimpleCpProgram.class.getName()); public static void main(String[] args) throws Exception { + Loader.loadNativeLibraries(); // Instantiate the solver. // [START solver] Solver solver = new Solver("CpSimple"); diff --git a/ortools/constraint_solver/samples/SimpleRoutingProgram.java b/ortools/constraint_solver/samples/SimpleRoutingProgram.java index 2f6581b558..44ec0887d5 100644 --- a/ortools/constraint_solver/samples/SimpleRoutingProgram.java +++ b/ortools/constraint_solver/samples/SimpleRoutingProgram.java @@ -16,6 +16,7 @@ package com.google.ortools.constraintsolver.samples; // [START import] import static java.lang.Math.abs; +import com.google.ortools.Loader; import com.google.ortools.constraintsolver.Assignment; import com.google.ortools.constraintsolver.FirstSolutionStrategy; import com.google.ortools.constraintsolver.RoutingIndexManager; @@ -27,13 +28,10 @@ import java.util.logging.Logger; /** Minimal Routing example to showcase calling the solver.*/ public class SimpleRoutingProgram { - static { - System.loadLibrary("jniortools"); - } - private static final Logger logger = Logger.getLogger(SimpleRoutingProgram.class.getName()); public static void main(String[] args) throws Exception { + Loader.loadNativeLibraries(); // Instantiate the data problem. // [START data] final int numLocation = 5; diff --git a/ortools/constraint_solver/samples/Tsp.java b/ortools/constraint_solver/samples/Tsp.java index c2ba211185..f0629edd1c 100644 --- a/ortools/constraint_solver/samples/Tsp.java +++ b/ortools/constraint_solver/samples/Tsp.java @@ -16,6 +16,7 @@ package com.google.ortools.constraintsolver.samples; // [START import] import static java.lang.Math.abs; +import com.google.ortools.Loader; import com.google.ortools.constraintsolver.Assignment; import com.google.ortools.constraintsolver.FirstSolutionStrategy; import com.google.ortools.constraintsolver.RoutingIndexManager; @@ -28,10 +29,6 @@ import java.util.logging.Logger; /** Minimal TSP.*/ public class Tsp { - static { - System.loadLibrary("jniortools"); - } - private static final Logger logger = Logger.getLogger(Tsp.class.getName()); // [START data_model] @@ -125,6 +122,7 @@ public class Tsp { // [END solution_printer] public static void main(String[] args) throws Exception { + Loader.loadNativeLibraries(); // Instantiate the data problem. // [START data] final DataModel data = new DataModel(); diff --git a/ortools/constraint_solver/samples/TspCircuitBoard.java b/ortools/constraint_solver/samples/TspCircuitBoard.java index e9371a2106..2b0f9c578c 100644 --- a/ortools/constraint_solver/samples/TspCircuitBoard.java +++ b/ortools/constraint_solver/samples/TspCircuitBoard.java @@ -14,6 +14,7 @@ // [START program] package com.google.ortools.constraintsolver.samples; // [START import] +import com.google.ortools.Loader; import com.google.ortools.constraintsolver.Assignment; import com.google.ortools.constraintsolver.FirstSolutionStrategy; import com.google.ortools.constraintsolver.RoutingIndexManager; @@ -26,10 +27,6 @@ import java.util.logging.Logger; /** Minimal TSP. */ public class TspCircuitBoard { - static { - System.loadLibrary("jniortools"); - } - private static final Logger logger = Logger.getLogger(TspCircuitBoard.class.getName()); // [START data_model] @@ -121,6 +118,7 @@ public class TspCircuitBoard { // [END solution_printer] public static void main(String[] args) throws Exception { + Loader.loadNativeLibraries(); // Instantiate the data problem. // [START data] final DataModel data = new DataModel(); diff --git a/ortools/constraint_solver/samples/TspCities.java b/ortools/constraint_solver/samples/TspCities.java index 02c4f2631f..9260128646 100644 --- a/ortools/constraint_solver/samples/TspCities.java +++ b/ortools/constraint_solver/samples/TspCities.java @@ -14,6 +14,7 @@ // [START program] package com.google.ortools.constraintsolver.samples; // [START import] +import com.google.ortools.Loader; import com.google.ortools.constraintsolver.Assignment; import com.google.ortools.constraintsolver.FirstSolutionStrategy; import com.google.ortools.constraintsolver.RoutingIndexManager; @@ -26,10 +27,6 @@ import java.util.logging.Logger; /** Minimal TSP using distance matrix. */ public class TspCities { - static { - System.loadLibrary("jniortools"); - } - private static final Logger logger = Logger.getLogger(TspCities.class.getName()); // [START data_model] @@ -78,6 +75,7 @@ public class TspCities { // [END solution_printer] public static void main(String[] args) throws Exception { + Loader.loadNativeLibraries(); // Instantiate the data problem. // [START data] final DataModel data = new DataModel(); diff --git a/ortools/constraint_solver/samples/TspDistanceMatrix.java b/ortools/constraint_solver/samples/TspDistanceMatrix.java index eb18936e28..6b3df3449a 100644 --- a/ortools/constraint_solver/samples/TspDistanceMatrix.java +++ b/ortools/constraint_solver/samples/TspDistanceMatrix.java @@ -14,6 +14,7 @@ // [START program] package com.google.ortools.constraintsolver.samples; // [START import] +import com.google.ortools.Loader; import com.google.ortools.constraintsolver.Assignment; import com.google.ortools.constraintsolver.FirstSolutionStrategy; import com.google.ortools.constraintsolver.RoutingIndexManager; @@ -25,10 +26,6 @@ import java.util.logging.Logger; /** Minimal TSP using distance matrix.*/ public class TspDistanceMatrix { - static { - System.loadLibrary("jniortools"); - } - private static final Logger logger = Logger.getLogger(TspDistanceMatrix.class.getName()); // [START data_model] @@ -81,6 +78,7 @@ public class TspDistanceMatrix { // [END solution_printer] public static void main(String[] args) throws Exception { + Loader.loadNativeLibraries(); // Instantiate the data problem. // [START data] final DataModel data = new DataModel(); diff --git a/ortools/constraint_solver/samples/Vrp.java b/ortools/constraint_solver/samples/Vrp.java index 789a7e08a8..3ff4a8b30b 100644 --- a/ortools/constraint_solver/samples/Vrp.java +++ b/ortools/constraint_solver/samples/Vrp.java @@ -14,6 +14,7 @@ // [START program] package com.google.ortools.constraintsolver.samples; // [START import] +import com.google.ortools.Loader; import com.google.ortools.constraintsolver.Assignment; import com.google.ortools.constraintsolver.FirstSolutionStrategy; import com.google.ortools.constraintsolver.RoutingIndexManager; @@ -25,10 +26,6 @@ import java.util.logging.Logger; /** Minimal VRP.*/ public class Vrp { - static { - System.loadLibrary("jniortools"); - } - private static final Logger logger = Logger.getLogger(Vrp.class.getName()); // [START data_model] @@ -86,6 +83,7 @@ public class Vrp { // [END solution_printer] public static void main(String[] args) throws Exception { + Loader.loadNativeLibraries(); // Instantiate the data problem. // [START data] final DataModel data = new DataModel(); diff --git a/ortools/constraint_solver/samples/VrpCapacity.java b/ortools/constraint_solver/samples/VrpCapacity.java index ed4aa916df..ab31e64e1e 100644 --- a/ortools/constraint_solver/samples/VrpCapacity.java +++ b/ortools/constraint_solver/samples/VrpCapacity.java @@ -14,6 +14,7 @@ // [START program] package com.google.ortools.constraintsolver.samples; // [START import] +import com.google.ortools.Loader; import com.google.ortools.constraintsolver.Assignment; import com.google.ortools.constraintsolver.FirstSolutionStrategy; import com.google.ortools.constraintsolver.LocalSearchMetaheuristic; @@ -27,10 +28,6 @@ import java.util.logging.Logger; /** Minimal VRP.*/ public class VrpCapacity { - static { - System.loadLibrary("jniortools"); - } - private static final Logger logger = Logger.getLogger(VrpCapacity.class.getName()); // [START data_model] @@ -96,6 +93,7 @@ public class VrpCapacity { // [END solution_printer] public static void main(String[] args) throws Exception { + Loader.loadNativeLibraries(); // Instantiate the data problem. // [START data] final DataModel data = new DataModel(); diff --git a/ortools/constraint_solver/samples/VrpDropNodes.java b/ortools/constraint_solver/samples/VrpDropNodes.java index 68999c9642..2a6ac68bdf 100644 --- a/ortools/constraint_solver/samples/VrpDropNodes.java +++ b/ortools/constraint_solver/samples/VrpDropNodes.java @@ -14,6 +14,7 @@ // [START program] package com.google.ortools.constraintsolver.samples; // [START import] +import com.google.ortools.Loader; import com.google.ortools.constraintsolver.Assignment; import com.google.ortools.constraintsolver.FirstSolutionStrategy; import com.google.ortools.constraintsolver.LocalSearchMetaheuristic; @@ -27,10 +28,6 @@ import java.util.logging.Logger; /** Minimal VRP.*/ public class VrpDropNodes { - static { - System.loadLibrary("jniortools"); - } - private static final Logger logger = Logger.getLogger(VrpDropNodes.class.getName()); // [START data_model] @@ -107,6 +104,7 @@ public class VrpDropNodes { // [END solution_printer] public static void main(String[] args) throws Exception { + Loader.loadNativeLibraries(); // Instantiate the data problem. // [START data] final DataModel data = new DataModel(); diff --git a/ortools/constraint_solver/samples/VrpGlobalSpan.java b/ortools/constraint_solver/samples/VrpGlobalSpan.java index b8cfeb1a9f..af5c2aef0b 100644 --- a/ortools/constraint_solver/samples/VrpGlobalSpan.java +++ b/ortools/constraint_solver/samples/VrpGlobalSpan.java @@ -14,6 +14,7 @@ // [START program] package com.google.ortools.constraintsolver.samples; // [START import] +import com.google.ortools.Loader; import com.google.ortools.constraintsolver.Assignment; import com.google.ortools.constraintsolver.FirstSolutionStrategy; import com.google.ortools.constraintsolver.RoutingDimension; @@ -26,10 +27,6 @@ import java.util.logging.Logger; /** Minimal VRP.*/ public class VrpGlobalSpan { - static { - System.loadLibrary("jniortools"); - } - private static final Logger logger = Logger.getLogger(VrpGlobalSpan.class.getName()); // [START data_model] @@ -84,6 +81,7 @@ public class VrpGlobalSpan { // [END solution_printer] public static void main(String[] args) throws Exception { + Loader.loadNativeLibraries(); // Instantiate the data problem. // [START data] final DataModel data = new DataModel(); diff --git a/ortools/constraint_solver/samples/VrpInitialRoutes.java b/ortools/constraint_solver/samples/VrpInitialRoutes.java index caa274c459..a93bccb642 100644 --- a/ortools/constraint_solver/samples/VrpInitialRoutes.java +++ b/ortools/constraint_solver/samples/VrpInitialRoutes.java @@ -14,6 +14,7 @@ // [START program] package com.google.ortools.constraintsolver.samples; // [START import] +import com.google.ortools.Loader; import com.google.ortools.constraintsolver.Assignment; import com.google.ortools.constraintsolver.RoutingDimension; import com.google.ortools.constraintsolver.RoutingIndexManager; @@ -25,10 +26,6 @@ import java.util.logging.Logger; /** Minimal VRP. */ public class VrpInitialRoutes { - static { - System.loadLibrary("jniortools"); - } - private static final Logger logger = Logger.getLogger(VrpInitialRoutes.class.getName()); // [START data_model] @@ -91,6 +88,7 @@ public class VrpInitialRoutes { // [END solution_printer] public static void main(String[] args) throws Exception { + Loader.loadNativeLibraries(); // Instantiate the data problem. // [START data] final DataModel data = new DataModel(); diff --git a/ortools/constraint_solver/samples/VrpPickupDelivery.java b/ortools/constraint_solver/samples/VrpPickupDelivery.java index b7c878e654..4aef486ddb 100644 --- a/ortools/constraint_solver/samples/VrpPickupDelivery.java +++ b/ortools/constraint_solver/samples/VrpPickupDelivery.java @@ -14,6 +14,7 @@ // [START program] package com.google.ortools.constraintsolver.samples; // [START import] +import com.google.ortools.Loader; import com.google.ortools.constraintsolver.Assignment; import com.google.ortools.constraintsolver.FirstSolutionStrategy; import com.google.ortools.constraintsolver.RoutingDimension; @@ -27,10 +28,6 @@ import java.util.logging.Logger; /** Minimal Pickup & Delivery Problem (PDP).*/ public class VrpPickupDelivery { - static { - System.loadLibrary("jniortools"); - } - private static final Logger logger = Logger.getLogger(VrpPickupDelivery.class.getName()); // [START data_model] @@ -96,6 +93,7 @@ public class VrpPickupDelivery { // [END solution_printer] public static void main(String[] args) throws Exception { + Loader.loadNativeLibraries(); // Instantiate the data problem. // [START data] final DataModel data = new DataModel(); diff --git a/ortools/constraint_solver/samples/VrpPickupDeliveryFifo.java b/ortools/constraint_solver/samples/VrpPickupDeliveryFifo.java index 91140437e2..24fb9c3fd3 100644 --- a/ortools/constraint_solver/samples/VrpPickupDeliveryFifo.java +++ b/ortools/constraint_solver/samples/VrpPickupDeliveryFifo.java @@ -14,6 +14,7 @@ // [START program] package com.google.ortools.constraintsolver.samples; // [START import] +import com.google.ortools.Loader; import com.google.ortools.constraintsolver.Assignment; import com.google.ortools.constraintsolver.FirstSolutionStrategy; import com.google.ortools.constraintsolver.RoutingDimension; @@ -27,10 +28,6 @@ import java.util.logging.Logger; /** Minimal Pickup & Delivery Problem (PDP).*/ public class VrpPickupDeliveryFifo { - static { - System.loadLibrary("jniortools"); - } - private static final Logger logger = Logger.getLogger(VrpPickupDeliveryFifo.class.getName()); // [START data_model] @@ -96,6 +93,7 @@ public class VrpPickupDeliveryFifo { // [END solution_printer] public static void main(String[] args) throws Exception { + Loader.loadNativeLibraries(); // Instantiate the data problem. // [START data] final DataModel data = new DataModel(); diff --git a/ortools/constraint_solver/samples/VrpPickupDeliveryLifo.java b/ortools/constraint_solver/samples/VrpPickupDeliveryLifo.java index 68c71af31b..4803942283 100644 --- a/ortools/constraint_solver/samples/VrpPickupDeliveryLifo.java +++ b/ortools/constraint_solver/samples/VrpPickupDeliveryLifo.java @@ -14,6 +14,7 @@ // [START program] package com.google.ortools.constraintsolver.samples; // [START import] +import com.google.ortools.Loader; import com.google.ortools.constraintsolver.Assignment; import com.google.ortools.constraintsolver.FirstSolutionStrategy; import com.google.ortools.constraintsolver.RoutingDimension; @@ -27,10 +28,6 @@ import java.util.logging.Logger; /** Minimal Pickup & Delivery Problem (PDP).*/ public class VrpPickupDeliveryLifo { - static { - System.loadLibrary("jniortools"); - } - private static final Logger logger = Logger.getLogger(VrpPickupDeliveryLifo.class.getName()); // [START data_model] @@ -96,6 +93,7 @@ public class VrpPickupDeliveryLifo { // [END solution_printer] public static void main(String[] args) throws Exception { + Loader.loadNativeLibraries(); // Instantiate the data problem. // [START data] final DataModel data = new DataModel(); diff --git a/ortools/constraint_solver/samples/VrpResources.java b/ortools/constraint_solver/samples/VrpResources.java index 15b0570cec..4db1e12623 100644 --- a/ortools/constraint_solver/samples/VrpResources.java +++ b/ortools/constraint_solver/samples/VrpResources.java @@ -14,6 +14,7 @@ // [START program] package com.google.ortools.constraintsolver.samples; // [START import] +import com.google.ortools.Loader; import com.google.ortools.constraintsolver.Assignment; import com.google.ortools.constraintsolver.FirstSolutionStrategy; import com.google.ortools.constraintsolver.IntVar; @@ -30,10 +31,6 @@ import java.util.logging.Logger; /** Minimal VRP with Resource Constraints.*/ public class VrpResources { - static { - System.loadLibrary("jniortools"); - } - private static final Logger logger = Logger.getLogger(VrpResources.class.getName()); // [START data_model] @@ -114,6 +111,7 @@ public class VrpResources { // [END solution_printer] public static void main(String[] args) throws Exception { + Loader.loadNativeLibraries(); // Instantiate the data problem. // [START data] final DataModel data = new DataModel(); diff --git a/ortools/constraint_solver/samples/VrpStartsEnds.java b/ortools/constraint_solver/samples/VrpStartsEnds.java index f204436943..ea550b6681 100644 --- a/ortools/constraint_solver/samples/VrpStartsEnds.java +++ b/ortools/constraint_solver/samples/VrpStartsEnds.java @@ -14,6 +14,7 @@ // [START program] package com.google.ortools.constraintsolver.samples; // [START import] +import com.google.ortools.Loader; import com.google.ortools.constraintsolver.Assignment; import com.google.ortools.constraintsolver.FirstSolutionStrategy; import com.google.ortools.constraintsolver.RoutingDimension; @@ -26,10 +27,6 @@ import java.util.logging.Logger; /** Minimal VRP.*/ public class VrpStartsEnds { - static { - System.loadLibrary("jniortools"); - } - private static final Logger logger = Logger.getLogger(VrpStartsEnds.class.getName()); // [START data_model] @@ -87,6 +84,7 @@ public class VrpStartsEnds { // [END solution_printer] public static void main(String[] args) throws Exception { + Loader.loadNativeLibraries(); // Instantiate the data problem. // [START data] final DataModel data = new DataModel(); diff --git a/ortools/constraint_solver/samples/VrpTimeWindows.java b/ortools/constraint_solver/samples/VrpTimeWindows.java index 27188bd38c..4a178073a1 100644 --- a/ortools/constraint_solver/samples/VrpTimeWindows.java +++ b/ortools/constraint_solver/samples/VrpTimeWindows.java @@ -14,6 +14,7 @@ // [START program] package com.google.ortools.constraintsolver.samples; // [START import] +import com.google.ortools.Loader; import com.google.ortools.constraintsolver.Assignment; import com.google.ortools.constraintsolver.FirstSolutionStrategy; import com.google.ortools.constraintsolver.IntVar; @@ -27,10 +28,6 @@ import java.util.logging.Logger; /** VRPTW. */ public class VrpTimeWindows { - static { - System.loadLibrary("jniortools"); - } - private static final Logger logger = Logger.getLogger(VrpTimeWindows.class.getName()); // [START program_part1] // [START data_model] @@ -106,6 +103,7 @@ public class VrpTimeWindows { // [END solution_printer] public static void main(String[] args) throws Exception { + Loader.loadNativeLibraries(); // Instantiate the data problem. // [START data] final DataModel data = new DataModel(); diff --git a/ortools/constraint_solver/samples/VrpWithTimeLimit.java b/ortools/constraint_solver/samples/VrpWithTimeLimit.java index d8b0dd5e45..480fdc2225 100644 --- a/ortools/constraint_solver/samples/VrpWithTimeLimit.java +++ b/ortools/constraint_solver/samples/VrpWithTimeLimit.java @@ -14,6 +14,7 @@ // [START program] package com.google.ortools.constraintsolver.samples; // [START import] +import com.google.ortools.Loader; import com.google.ortools.constraintsolver.Assignment; import com.google.ortools.constraintsolver.FirstSolutionStrategy; import com.google.ortools.constraintsolver.LocalSearchMetaheuristic; @@ -28,10 +29,6 @@ import java.util.logging.Logger; /** Minimal VRP.*/ public class VrpWithTimeLimit { - static { - System.loadLibrary("jniortools"); - } - private static final Logger logger = Logger.getLogger(VrpWithTimeLimit.class.getName()); // [START solution_printer] @@ -59,6 +56,7 @@ public class VrpWithTimeLimit { // [END solution_printer] public static void main(String[] args) throws Exception { + Loader.loadNativeLibraries(); // Instantiate the data problem. // [START data] final int locationNumber = 20; diff --git a/ortools/linear_solver/samples/AssignmentMip.java b/ortools/linear_solver/samples/AssignmentMip.java index 9668a6ee55..2ac41f0346 100644 --- a/ortools/linear_solver/samples/AssignmentMip.java +++ b/ortools/linear_solver/samples/AssignmentMip.java @@ -14,6 +14,7 @@ // [START program] package com.google.ortools.linearsolver.samples; // [START import] +import com.google.ortools.Loader; import com.google.ortools.linearsolver.MPConstraint; import com.google.ortools.linearsolver.MPObjective; import com.google.ortools.linearsolver.MPSolver; @@ -22,11 +23,8 @@ import com.google.ortools.linearsolver.MPVariable; /** MIP example that solves an assignment problem. */ public class AssignmentMip { - static { - System.loadLibrary("jniortools"); - } - public static void main(String[] args) { + Loader.loadNativeLibraries(); // Data // [START data_model] double[][] costs = { diff --git a/ortools/linear_solver/samples/BinPackingMip.java b/ortools/linear_solver/samples/BinPackingMip.java index 0e148f972f..d0d4fc7f33 100644 --- a/ortools/linear_solver/samples/BinPackingMip.java +++ b/ortools/linear_solver/samples/BinPackingMip.java @@ -15,6 +15,7 @@ // [START program] package com.google.ortools.linearsolver.samples; // [START import] +import com.google.ortools.Loader; import com.google.ortools.linearsolver.MPConstraint; import com.google.ortools.linearsolver.MPObjective; import com.google.ortools.linearsolver.MPSolver; @@ -23,10 +24,6 @@ import com.google.ortools.linearsolver.MPVariable; /** Bin packing problem. */ public class BinPackingMip { - static { - System.loadLibrary("jniortools"); - } - // [START program_part1] // [START data_model] static class DataModel { @@ -38,6 +35,7 @@ public class BinPackingMip { // [END data_model] public static void main(String[] args) throws Exception { + Loader.loadNativeLibraries(); // [START data] final DataModel data = new DataModel(); // [END data] diff --git a/ortools/linear_solver/samples/LinearProgrammingExample.java b/ortools/linear_solver/samples/LinearProgrammingExample.java index 82fdd817c9..305df05f22 100644 --- a/ortools/linear_solver/samples/LinearProgrammingExample.java +++ b/ortools/linear_solver/samples/LinearProgrammingExample.java @@ -14,6 +14,7 @@ // [START program] package com.google.ortools.linearsolver.samples; +import com.google.ortools.Loader; import com.google.ortools.linearsolver.MPConstraint; import com.google.ortools.linearsolver.MPObjective; import com.google.ortools.linearsolver.MPSolver; @@ -21,11 +22,8 @@ import com.google.ortools.linearsolver.MPVariable; /** Simple linear programming example.*/ public class LinearProgrammingExample { - static { - System.loadLibrary("jniortools"); - } - public static void main(String[] args) throws Exception { + Loader.loadNativeLibraries(); // [START solver] MPSolver solver = MPSolver.createSolver("GLOP"); // [END solver] diff --git a/ortools/linear_solver/samples/MipVarArray.java b/ortools/linear_solver/samples/MipVarArray.java index bf84f8a5f4..94752b2749 100644 --- a/ortools/linear_solver/samples/MipVarArray.java +++ b/ortools/linear_solver/samples/MipVarArray.java @@ -15,6 +15,7 @@ // [START program] package com.google.ortools.linearsolver.samples; // [START import] +import com.google.ortools.Loader; import com.google.ortools.linearsolver.MPConstraint; import com.google.ortools.linearsolver.MPObjective; import com.google.ortools.linearsolver.MPSolver; @@ -24,9 +25,6 @@ import com.google.ortools.linearsolver.MPVariable; // [START program_part1] /** MIP example with a variable array. */ public class MipVarArray { - static { - System.loadLibrary("jniortools"); - } // [START data_model] static class DataModel { public final double[][] constraintCoeffs = { @@ -43,6 +41,7 @@ public class MipVarArray { // [END data_model] public static void main(String[] args) throws Exception { + Loader.loadNativeLibraries(); // [START data] final DataModel data = new DataModel(); // [END data] diff --git a/ortools/linear_solver/samples/MultipleKnapsackMip.java b/ortools/linear_solver/samples/MultipleKnapsackMip.java index 6ad9bb58db..a836b20645 100644 --- a/ortools/linear_solver/samples/MultipleKnapsackMip.java +++ b/ortools/linear_solver/samples/MultipleKnapsackMip.java @@ -15,6 +15,7 @@ // [START program] package com.google.ortools.linearsolver.samples; // [START import] +import com.google.ortools.Loader; import com.google.ortools.linearsolver.MPConstraint; import com.google.ortools.linearsolver.MPObjective; import com.google.ortools.linearsolver.MPSolver; @@ -23,10 +24,6 @@ import com.google.ortools.linearsolver.MPVariable; /** Multiple knapsack problem. */ public class MultipleKnapsackMip { - static { - System.loadLibrary("jniortools"); - } - // [START program_part1] // [START data_model] static class DataModel { @@ -39,6 +36,7 @@ public class MultipleKnapsackMip { // [END data_model] public static void main(String[] args) throws Exception { + Loader.loadNativeLibraries(); // [START data] final DataModel data = new DataModel(); // [END data] diff --git a/ortools/linear_solver/samples/SimpleLpProgram.java b/ortools/linear_solver/samples/SimpleLpProgram.java index 6dbba1acbb..2cb7cf1904 100644 --- a/ortools/linear_solver/samples/SimpleLpProgram.java +++ b/ortools/linear_solver/samples/SimpleLpProgram.java @@ -15,6 +15,7 @@ // [START program] package com.google.ortools.linearsolver.samples; // [START import] +import com.google.ortools.Loader; import com.google.ortools.linearsolver.MPConstraint; import com.google.ortools.linearsolver.MPObjective; import com.google.ortools.linearsolver.MPSolver; @@ -23,11 +24,8 @@ import com.google.ortools.linearsolver.MPVariable; /** Minimal Linear Programming example to showcase calling the solver.*/ public class SimpleLpProgram { - static { - System.loadLibrary("jniortools"); - } - public static void main(String[] args) throws Exception { + Loader.loadNativeLibraries(); // [START solver] // Create the linear solver with the GLOP backend. MPSolver solver = MPSolver.createSolver("GLOP"); diff --git a/ortools/linear_solver/samples/SimpleMipProgram.java b/ortools/linear_solver/samples/SimpleMipProgram.java index 188adb8d39..3978c6b15a 100644 --- a/ortools/linear_solver/samples/SimpleMipProgram.java +++ b/ortools/linear_solver/samples/SimpleMipProgram.java @@ -15,6 +15,7 @@ // [START program] package com.google.ortools.linearsolver.samples; // [START import] +import com.google.ortools.Loader; import com.google.ortools.linearsolver.MPConstraint; import com.google.ortools.linearsolver.MPObjective; import com.google.ortools.linearsolver.MPSolver; @@ -23,11 +24,8 @@ import com.google.ortools.linearsolver.MPVariable; /** Minimal Mixed Integer Programming example to showcase calling the solver. */ public class SimpleMipProgram { - static { - System.loadLibrary("jniortools"); - } - public static void main(String[] args) throws Exception { + Loader.loadNativeLibraries(); // [START solver] // Create the linear solver with the SCIP backend. MPSolver solver = MPSolver.createSolver("SCIP"); diff --git a/ortools/sat/samples/AssignmentSat.java b/ortools/sat/samples/AssignmentSat.java index 0e52f3330b..18b6b63a02 100644 --- a/ortools/sat/samples/AssignmentSat.java +++ b/ortools/sat/samples/AssignmentSat.java @@ -15,6 +15,7 @@ // [START program] package com.google.ortools.sat.samples; // [START import] +import com.google.ortools.Loader; import com.google.ortools.sat.CpModel; import com.google.ortools.sat.CpSolver; import com.google.ortools.sat.CpSolverStatus; @@ -24,11 +25,8 @@ import com.google.ortools.sat.LinearExpr; /** Assignment problem. */ public class AssignmentSat { - static { - System.loadLibrary("jniortools"); - } - public static void main(String[] args) { + Loader.loadNativeLibraries(); // Data // [START data_model] int[][] costs = { diff --git a/ortools/sat/samples/BinPackingProblemSat.java b/ortools/sat/samples/BinPackingProblemSat.java index c79d0222df..492a0256df 100644 --- a/ortools/sat/samples/BinPackingProblemSat.java +++ b/ortools/sat/samples/BinPackingProblemSat.java @@ -13,6 +13,7 @@ package com.google.ortools.sat.samples; +import com.google.ortools.Loader; import com.google.ortools.sat.CpModel; import com.google.ortools.sat.CpSolver; import com.google.ortools.sat.CpSolverStatus; @@ -21,11 +22,8 @@ import com.google.ortools.sat.LinearExpr; /** Solves a bin packing problem with the CP-SAT solver. */ public class BinPackingProblemSat { - static { - System.loadLibrary("jniortools"); - } - public static void main(String[] args) throws Exception { + Loader.loadNativeLibraries(); // Data. int binCapacity = 100; int slackCapacity = 20; diff --git a/ortools/sat/samples/BoolOrSampleSat.java b/ortools/sat/samples/BoolOrSampleSat.java index 9a29f8c37e..2c3c2918d3 100644 --- a/ortools/sat/samples/BoolOrSampleSat.java +++ b/ortools/sat/samples/BoolOrSampleSat.java @@ -13,17 +13,15 @@ package com.google.ortools.sat.samples; +import com.google.ortools.Loader; import com.google.ortools.sat.CpModel; import com.google.ortools.sat.IntVar; import com.google.ortools.sat.Literal; /** Code sample to demonstrates a simple Boolean constraint. */ public class BoolOrSampleSat { - static { - System.loadLibrary("jniortools"); - } - public static void main(String[] args) throws Exception { + Loader.loadNativeLibraries(); CpModel model = new CpModel(); IntVar x = model.newBoolVar("x"); IntVar y = model.newBoolVar("y"); diff --git a/ortools/sat/samples/ChannelingSampleSat.java b/ortools/sat/samples/ChannelingSampleSat.java index 815179146c..247f1b45a9 100644 --- a/ortools/sat/samples/ChannelingSampleSat.java +++ b/ortools/sat/samples/ChannelingSampleSat.java @@ -13,6 +13,7 @@ package com.google.ortools.sat.samples; +import com.google.ortools.Loader; import com.google.ortools.sat.CpModel; import com.google.ortools.sat.CpSolver; import com.google.ortools.sat.CpSolverSolutionCallback; @@ -23,11 +24,8 @@ import com.google.ortools.sat.SatParameters; /** Link integer constraints together. */ public class ChannelingSampleSat { - static { - System.loadLibrary("jniortools"); - } - public static void main(String[] args) throws Exception { + Loader.loadNativeLibraries(); // Create the CP-SAT model. CpModel model = new CpModel(); diff --git a/ortools/sat/samples/CpIsFunSat.java b/ortools/sat/samples/CpIsFunSat.java index 962079e25c..cde50a88d9 100644 --- a/ortools/sat/samples/CpIsFunSat.java +++ b/ortools/sat/samples/CpIsFunSat.java @@ -14,6 +14,7 @@ // [START program] package com.google.ortools.sat.samples; +import com.google.ortools.Loader; import com.google.ortools.sat.CpModel; import com.google.ortools.sat.CpSolver; import com.google.ortools.sat.CpSolverSolutionCallback; @@ -22,10 +23,6 @@ import com.google.ortools.sat.LinearExpr; /** Cryptarithmetic puzzle. */ public class CpIsFunSat { - static { - System.loadLibrary("jniortools"); - } - // [START solution_printing] static class VarArraySolutionPrinter extends CpSolverSolutionCallback { public VarArraySolutionPrinter(IntVar[] variables) { @@ -51,6 +48,7 @@ public class CpIsFunSat { // [END solution_printing] public static void main(String[] args) throws Exception { + Loader.loadNativeLibraries(); // Create the model. CpModel model = new CpModel(); diff --git a/ortools/sat/samples/EarlinessTardinessCostSampleSat.java b/ortools/sat/samples/EarlinessTardinessCostSampleSat.java index a5cdbea7e8..f1d629c45c 100644 --- a/ortools/sat/samples/EarlinessTardinessCostSampleSat.java +++ b/ortools/sat/samples/EarlinessTardinessCostSampleSat.java @@ -13,6 +13,7 @@ package com.google.ortools.sat.samples; +import com.google.ortools.Loader; import com.google.ortools.sat.CpModel; import com.google.ortools.sat.CpSolver; import com.google.ortools.sat.CpSolverSolutionCallback; @@ -23,11 +24,8 @@ import com.google.ortools.sat.SatParameters; /** Encode the piecewise linear expression. */ public class EarlinessTardinessCostSampleSat { - static { - System.loadLibrary("jniortools"); - } - public static void main(String[] args) throws Exception { + Loader.loadNativeLibraries(); long earlinessDate = 5; long earlinessCost = 8; long latenessDate = 15; diff --git a/ortools/sat/samples/IntervalSampleSat.java b/ortools/sat/samples/IntervalSampleSat.java index 2c297d2241..efaa0f549c 100644 --- a/ortools/sat/samples/IntervalSampleSat.java +++ b/ortools/sat/samples/IntervalSampleSat.java @@ -13,17 +13,15 @@ package com.google.ortools.sat.samples; +import com.google.ortools.Loader; import com.google.ortools.sat.CpModel; import com.google.ortools.sat.IntVar; import com.google.ortools.sat.IntervalVar; /** Code sample to demonstrates how to build an interval. */ public class IntervalSampleSat { - static { - System.loadLibrary("jniortools"); - } - public static void main(String[] args) throws Exception { + Loader.loadNativeLibraries(); CpModel model = new CpModel(); int horizon = 100; IntVar startVar = model.newIntVar(0, horizon, "start"); diff --git a/ortools/sat/samples/LiteralSampleSat.java b/ortools/sat/samples/LiteralSampleSat.java index d000af8d90..744de82856 100644 --- a/ortools/sat/samples/LiteralSampleSat.java +++ b/ortools/sat/samples/LiteralSampleSat.java @@ -13,17 +13,15 @@ package com.google.ortools.sat.samples; +import com.google.ortools.Loader; import com.google.ortools.sat.CpModel; import com.google.ortools.sat.IntVar; import com.google.ortools.sat.Literal; /** Code sample to demonstrate Boolean variable and literals. */ public class LiteralSampleSat { - static { - System.loadLibrary("jniortools"); - } - public static void main(String[] args) throws Exception { + Loader.loadNativeLibraries(); CpModel model = new CpModel(); IntVar x = model.newBoolVar("x"); Literal notX = x.not(); diff --git a/ortools/sat/samples/MultipleKnapsackSat.java b/ortools/sat/samples/MultipleKnapsackSat.java index 6d05f124f7..88ed0bdba3 100644 --- a/ortools/sat/samples/MultipleKnapsackSat.java +++ b/ortools/sat/samples/MultipleKnapsackSat.java @@ -14,6 +14,7 @@ // [START program] package com.google.ortools.sat.samples; // [START import] +import com.google.ortools.Loader; import com.google.ortools.sat.CpModel; import com.google.ortools.sat.CpSolver; import com.google.ortools.sat.CpSolverStatus; @@ -23,10 +24,6 @@ import com.google.ortools.sat.LinearExpr; /** Sample showing how to solve a multiple knapsack problem. */ public class MultipleKnapsackSat { - static { - System.loadLibrary("jniortools"); - } - // [START data] static class DataModel { int[] items = new int[] {48, 30, 42, 36, 36, 48, 42, 42, 36, 24, 30, 30, 42, 36, 36}; @@ -62,6 +59,7 @@ public class MultipleKnapsackSat { } public static void main(String[] args) { + Loader.loadNativeLibraries(); // Instantiate the data problem. // [START data] final DataModel data = new DataModel(); diff --git a/ortools/sat/samples/NoOverlapSampleSat.java b/ortools/sat/samples/NoOverlapSampleSat.java index b0a763082b..52a935767f 100644 --- a/ortools/sat/samples/NoOverlapSampleSat.java +++ b/ortools/sat/samples/NoOverlapSampleSat.java @@ -13,6 +13,7 @@ package com.google.ortools.sat.samples; +import com.google.ortools.Loader; import com.google.ortools.sat.CpModel; import com.google.ortools.sat.CpSolver; import com.google.ortools.sat.CpSolverStatus; @@ -24,11 +25,8 @@ import com.google.ortools.sat.IntervalVar; * possible. */ public class NoOverlapSampleSat { - static { - System.loadLibrary("jniortools"); - } - public static void main(String[] args) throws Exception { + Loader.loadNativeLibraries(); CpModel model = new CpModel(); // Three weeks. int horizon = 21; diff --git a/ortools/sat/samples/OptionalIntervalSampleSat.java b/ortools/sat/samples/OptionalIntervalSampleSat.java index 9d90346e70..c68a798e5e 100644 --- a/ortools/sat/samples/OptionalIntervalSampleSat.java +++ b/ortools/sat/samples/OptionalIntervalSampleSat.java @@ -13,6 +13,7 @@ package com.google.ortools.sat.samples; +import com.google.ortools.Loader; import com.google.ortools.sat.CpModel; import com.google.ortools.sat.IntVar; import com.google.ortools.sat.IntervalVar; @@ -20,11 +21,8 @@ import com.google.ortools.sat.Literal; /** Code sample to demonstrates how to build an optional interval. */ public class OptionalIntervalSampleSat { - static { - System.loadLibrary("jniortools"); - } - public static void main(String[] args) throws Exception { + Loader.loadNativeLibraries(); CpModel model = new CpModel(); int horizon = 100; IntVar startVar = model.newIntVar(0, horizon, "start"); diff --git a/ortools/sat/samples/RabbitsAndPheasantsSat.java b/ortools/sat/samples/RabbitsAndPheasantsSat.java index 579ba1a39c..ad298e8f8b 100644 --- a/ortools/sat/samples/RabbitsAndPheasantsSat.java +++ b/ortools/sat/samples/RabbitsAndPheasantsSat.java @@ -13,6 +13,7 @@ package com.google.ortools.sat.samples; +import com.google.ortools.Loader; import com.google.ortools.sat.CpModel; import com.google.ortools.sat.CpSolver; import com.google.ortools.sat.CpSolverStatus; @@ -24,11 +25,8 @@ import com.google.ortools.sat.LinearExpr; * pheasants are there? */ public class RabbitsAndPheasantsSat { - static { - System.loadLibrary("jniortools"); - } - public static void main(String[] args) throws Exception { + Loader.loadNativeLibraries(); // Creates the model. CpModel model = new CpModel(); // Creates the variables. diff --git a/ortools/sat/samples/RankingSampleSat.java b/ortools/sat/samples/RankingSampleSat.java index f24c9effd4..0ed88a86fb 100644 --- a/ortools/sat/samples/RankingSampleSat.java +++ b/ortools/sat/samples/RankingSampleSat.java @@ -13,6 +13,7 @@ package com.google.ortools.sat.samples; +import com.google.ortools.Loader; import com.google.ortools.sat.CpModel; import com.google.ortools.sat.CpSolver; import com.google.ortools.sat.CpSolverStatus; @@ -25,10 +26,6 @@ import java.util.List; /** Code sample to demonstrates how to rank intervals. */ public class RankingSampleSat { - static { - System.loadLibrary("jniortools"); - } - /** * This code takes a list of interval variables in a noOverlap constraint, and a parallel list of * integer variables and enforces the following constraint @@ -97,6 +94,7 @@ public class RankingSampleSat { } public static void main(String[] args) throws Exception { + Loader.loadNativeLibraries(); CpModel model = new CpModel(); int horizon = 100; int numTasks = 4; diff --git a/ortools/sat/samples/ReifiedSampleSat.java b/ortools/sat/samples/ReifiedSampleSat.java index 6a999d9602..970147185a 100644 --- a/ortools/sat/samples/ReifiedSampleSat.java +++ b/ortools/sat/samples/ReifiedSampleSat.java @@ -13,6 +13,7 @@ package com.google.ortools.sat.samples; +import com.google.ortools.Loader; import com.google.ortools.sat.CpModel; import com.google.ortools.sat.IntVar; import com.google.ortools.sat.Literal; @@ -28,11 +29,8 @@ import com.google.ortools.sat.Literal; * constraints must be used. */ public class ReifiedSampleSat { - static { - System.loadLibrary("jniortools"); - } - public static void main(String[] args) throws Exception { + Loader.loadNativeLibraries(); CpModel model = new CpModel(); IntVar x = model.newBoolVar("x"); diff --git a/ortools/sat/samples/SearchForAllSolutionsSampleSat.java b/ortools/sat/samples/SearchForAllSolutionsSampleSat.java index c803d6732f..14143d72b6 100644 --- a/ortools/sat/samples/SearchForAllSolutionsSampleSat.java +++ b/ortools/sat/samples/SearchForAllSolutionsSampleSat.java @@ -14,6 +14,7 @@ // [START program] package com.google.ortools.sat.samples; +import com.google.ortools.Loader; import com.google.ortools.sat.CpModel; import com.google.ortools.sat.CpSolver; import com.google.ortools.sat.CpSolverSolutionCallback; @@ -21,10 +22,6 @@ import com.google.ortools.sat.IntVar; /** Code sample that solves a model and displays all solutions. */ public class SearchForAllSolutionsSampleSat { - static { - System.loadLibrary("jniortools"); - } - // [START print_solution] static class VarArraySolutionPrinter extends CpSolverSolutionCallback { public VarArraySolutionPrinter(IntVar[] variables) { @@ -50,6 +47,7 @@ public class SearchForAllSolutionsSampleSat { // [END print_solution] public static void main(String[] args) throws Exception { + Loader.loadNativeLibraries(); // Create the model. // [START model] CpModel model = new CpModel(); diff --git a/ortools/sat/samples/SimpleSatProgram.java b/ortools/sat/samples/SimpleSatProgram.java index 9aff75c33b..0e20876b9f 100644 --- a/ortools/sat/samples/SimpleSatProgram.java +++ b/ortools/sat/samples/SimpleSatProgram.java @@ -14,6 +14,7 @@ // [START program] package com.google.ortools.sat.samples; +import com.google.ortools.Loader; import com.google.ortools.sat.CpModel; import com.google.ortools.sat.CpSolver; import com.google.ortools.sat.CpSolverStatus; @@ -21,11 +22,8 @@ import com.google.ortools.sat.IntVar; /** Minimal CP-SAT example to showcase calling the solver. */ public class SimpleSatProgram { - static { - System.loadLibrary("jniortools"); - } - public static void main(String[] args) throws Exception { + Loader.loadNativeLibraries(); // Create the model. // [START model] CpModel model = new CpModel(); diff --git a/ortools/sat/samples/SolutionHintingSampleSat.java b/ortools/sat/samples/SolutionHintingSampleSat.java index 3a414f0684..e0d17898d9 100644 --- a/ortools/sat/samples/SolutionHintingSampleSat.java +++ b/ortools/sat/samples/SolutionHintingSampleSat.java @@ -14,6 +14,7 @@ // [START program] package com.google.ortools.sat.samples; +import com.google.ortools.Loader; import com.google.ortools.sat.CpModel; import com.google.ortools.sat.CpSolver; import com.google.ortools.sat.CpSolverSolutionCallback; @@ -22,11 +23,8 @@ import com.google.ortools.sat.LinearExpr; /** Minimal CP-SAT example to showcase calling the solver. */ public class SolutionHintingSampleSat { - static { - System.loadLibrary("jniortools"); - } - public static void main(String[] args) throws Exception { + Loader.loadNativeLibraries(); // Create the model. // [START model] CpModel model = new CpModel(); diff --git a/ortools/sat/samples/SolveAndPrintIntermediateSolutionsSampleSat.java b/ortools/sat/samples/SolveAndPrintIntermediateSolutionsSampleSat.java index 5cda9146b0..6da1bf0074 100644 --- a/ortools/sat/samples/SolveAndPrintIntermediateSolutionsSampleSat.java +++ b/ortools/sat/samples/SolveAndPrintIntermediateSolutionsSampleSat.java @@ -14,6 +14,7 @@ // [START program] package com.google.ortools.sat.samples; +import com.google.ortools.Loader; import com.google.ortools.sat.CpModel; import com.google.ortools.sat.CpSolver; import com.google.ortools.sat.CpSolverSolutionCallback; @@ -22,10 +23,6 @@ import com.google.ortools.sat.LinearExpr; /** Solves an optimization problem and displays all intermediate solutions. */ public class SolveAndPrintIntermediateSolutionsSampleSat { - static { - System.loadLibrary("jniortools"); - } - // [START print_solution] static class VarArraySolutionPrinterWithObjective extends CpSolverSolutionCallback { public VarArraySolutionPrinterWithObjective(IntVar[] variables) { @@ -52,6 +49,7 @@ public class SolveAndPrintIntermediateSolutionsSampleSat { // [END print_solution] public static void main(String[] args) throws Exception { + Loader.loadNativeLibraries(); // Create the model. // [START model] CpModel model = new CpModel(); diff --git a/ortools/sat/samples/SolveWithTimeLimitSampleSat.java b/ortools/sat/samples/SolveWithTimeLimitSampleSat.java index 995ba51ccc..519f974986 100644 --- a/ortools/sat/samples/SolveWithTimeLimitSampleSat.java +++ b/ortools/sat/samples/SolveWithTimeLimitSampleSat.java @@ -13,6 +13,7 @@ package com.google.ortools.sat.samples; +import com.google.ortools.Loader; import com.google.ortools.sat.CpModel; import com.google.ortools.sat.CpSolver; import com.google.ortools.sat.CpSolverStatus; @@ -20,11 +21,8 @@ import com.google.ortools.sat.IntVar; /** Solves a problem with a time limit. */ public class SolveWithTimeLimitSampleSat { - static { - System.loadLibrary("jniortools"); - } - public static void main(String[] args) throws Exception { + Loader.loadNativeLibraries(); // Create the model. CpModel model = new CpModel(); // Create the variables. diff --git a/ortools/sat/samples/StepFunctionSampleSat.java b/ortools/sat/samples/StepFunctionSampleSat.java index 227bf7f5f9..b1573e9546 100644 --- a/ortools/sat/samples/StepFunctionSampleSat.java +++ b/ortools/sat/samples/StepFunctionSampleSat.java @@ -13,6 +13,7 @@ package com.google.ortools.sat.samples; +import com.google.ortools.Loader; import com.google.ortools.sat.CpModel; import com.google.ortools.sat.CpSolver; import com.google.ortools.sat.CpSolverSolutionCallback; @@ -24,11 +25,8 @@ import com.google.ortools.util.Domain; /** Link integer constraints together. */ public class StepFunctionSampleSat { - static { - System.loadLibrary("jniortools"); - } - public static void main(String[] args) throws Exception { + Loader.loadNativeLibraries(); // Create the CP-SAT model. CpModel model = new CpModel(); diff --git a/ortools/sat/samples/StopAfterNSolutionsSampleSat.java b/ortools/sat/samples/StopAfterNSolutionsSampleSat.java index 09a657f230..c8314090ac 100644 --- a/ortools/sat/samples/StopAfterNSolutionsSampleSat.java +++ b/ortools/sat/samples/StopAfterNSolutionsSampleSat.java @@ -13,6 +13,7 @@ package com.google.ortools.sat.samples; +import com.google.ortools.Loader; import com.google.ortools.sat.CpModel; import com.google.ortools.sat.CpSolver; import com.google.ortools.sat.CpSolverSolutionCallback; @@ -20,10 +21,6 @@ import com.google.ortools.sat.IntVar; /** Code sample that solves a model and displays a small number of solutions. */ public class StopAfterNSolutionsSampleSat { - static { - System.loadLibrary("jniortools"); - } - static class VarArraySolutionPrinterWithLimit extends CpSolverSolutionCallback { public VarArraySolutionPrinterWithLimit(IntVar[] variables, int limit) { variableArray = variables; @@ -53,6 +50,7 @@ public class StopAfterNSolutionsSampleSat { } public static void main(String[] args) throws Exception { + Loader.loadNativeLibraries(); // Create the model. CpModel model = new CpModel(); // Create the variables.