List of usage examples for java.lang System loadLibrary
@CallerSensitive public static void loadLibrary(String libname)
From source file:org.apache.hadoop.hbase.util.TestCompressionTest.java
/** * Verify CompressionTest.testCompression() on a native codec. */// w w w. j a va2 s .c om private void nativeCodecTest(String codecName, String libName, String codecClassName) { if (isCompressionAvailable(codecClassName)) { try { if (libName != null) { System.loadLibrary(libName); } try { Configuration conf = new Configuration(); CompressionCodec codec = (CompressionCodec) ReflectionUtils .newInstance(conf.getClassByName(codecClassName), conf); DataOutputBuffer compressedDataBuffer = new DataOutputBuffer(); CompressionOutputStream deflateFilter = codec.createOutputStream(compressedDataBuffer); byte[] data = new byte[1024]; DataOutputStream deflateOut = new DataOutputStream(new BufferedOutputStream(deflateFilter)); deflateOut.write(data, 0, data.length); deflateOut.flush(); deflateFilter.finish(); // Codec class, codec nativelib and Hadoop nativelib with codec JNIs are present assertTrue(CompressionTest.testCompression(codecName)); } catch (UnsatisfiedLinkError e) { // Hadoop nativelib does not have codec JNIs. // cannot assert the codec here because the current logic of // CompressionTest checks only classloading, not the codec // usage. LOG.debug("No JNI for codec '" + codecName + "' " + e.getMessage()); } catch (Exception e) { LOG.error(codecName, e); } } catch (UnsatisfiedLinkError e) { // nativelib is not available LOG.debug("Native lib not available: " + codecName); assertFalse(CompressionTest.testCompression(codecName)); } } else { // Compression Codec class is not available LOG.debug("Codec class not available: " + codecName); assertFalse(CompressionTest.testCompression(codecName)); } }
From source file:edu.uw.apl.nativelibloader.NativeLoader.java
static private synchronized void loadNativeLibrary(String prefix, String libName) throws IOException { log.debug("Loading: " + prefix + " " + libName); Properties p = loadConfiguration(prefix, libName); if (isDefined("disabled", prefix, libName, p)) { log.debug("Loading disabled: " + prefix + "," + libName); return;/* w ww . j a va 2 s .c o m*/ } if (isDefined("useExternal", prefix, libName, p)) { /* Load external artifact (i.e. one found, hopefully, using -Djava.library.path). Do NOT proceed to load from a local resource */ System.loadLibrary(libName); return; } File nativeLibFile = findNativeLibrary(prefix, libName, p); if (nativeLibFile != null) { System.load(nativeLibFile.getPath()); } }
From source file:com.poinsart.votar.VotarMain.java
@Override protected void onCreate(Bundle savedInstanceState) { this.requestWindowFeature(Window.FEATURE_NO_TITLE); System.loadLibrary("VotAR"); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); assetMgr = this.getAssets(); imageView = (ImageView) findViewById(R.id.imageView); bar[0] = (ProgressBar) findViewById(R.id.bar_a); bar[1] = (ProgressBar) findViewById(R.id.bar_b); bar[2] = (ProgressBar) findViewById(R.id.bar_c); bar[3] = (ProgressBar) findViewById(R.id.bar_d); barLabel[0] = (TextView) findViewById(R.id.label_a); barLabel[1] = (TextView) findViewById(R.id.label_b); barLabel[2] = (TextView) findViewById(R.id.label_c); barLabel[3] = (TextView) findViewById(R.id.label_d); wifiLabel = (TextView) findViewById(R.id.label_wifi); mainLayout = ((LinearLayout) findViewById(R.id.mainLayout)); controlLayout = ((LinearLayout) findViewById(R.id.controlLayout)); imageLayout = ((LinearLayout) findViewById(R.id.imageLayout)); adjustLayoutForOrientation(getResources().getConfiguration().orientation); findViewById(R.id.buttonCamera).setOnClickListener(new View.OnClickListener() { @Override/*from w ww. j av a2 s . c om*/ public void onClick(View v) { Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); cameraFileUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE); // create a file to save the image cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, cameraFileUri); // set the image file name startActivityForResult(cameraIntent, CAMERA_REQUEST); } }); findViewById(R.id.buttonGallery).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(); intent.setType("image/*"); intent.setAction(Intent.ACTION_GET_CONTENT); startActivityForResult(Intent.createChooser(intent, "Select Picture"), GALLERY_REQUEST); } }); votarwebserver = new VotarWebServer(51285, this); try { votarwebserver.start(); } catch (IOException e) { Log.w("Votar MainAct", "The webserver could not be started, remote display wont be available"); } }
From source file:com.shreymalhotra.crazyflieserver.MainActivity.java
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mFlightDataView = (FlightDataView) findViewById(R.id.flightdataview); mJoysticks = (DualJoystickView) findViewById(R.id.joysticks); mJoysticks.setMovementRange(resolution, resolution); mJoysticks.setOnJostickMovedListener(_listenerLeft, _listenerRight); serverStatus = (TextView) findViewById(R.id.serverStatus); serverStatus2 = (TextView) findViewById(R.id.serverStatus2); System.loadLibrary("natpmp"); initStreamingLoop();// w w w .ja va2 s.c o m }
From source file:ca.psiphon.PsiphonTunnel.java
public static synchronized PsiphonTunnel newPsiphonTunnel(HostService hostService) { if (mPsiphonTunnel != null) { mPsiphonTunnel.stop();/*from ww w . ja v a 2 s. c o m*/ } // Load the native go code embedded in psi.aar System.loadLibrary("gojni"); mPsiphonTunnel = new PsiphonTunnel(hostService); return mPsiphonTunnel; }
From source file:com.liferay.nativity.control.win.WindowsNativityUtil.java
private static boolean _loadLibrary(boolean fullPath, String path) { _logger.trace("Trying to load {} {}", fullPath, path); try {/*from w w w .ja v a 2s . c o m*/ if (fullPath) { System.load(path); } else { System.loadLibrary(path); } _loaded = true; _logger.trace("Loaded library {}", path); } catch (UnsatisfiedLinkError e) { _logger.error("Library Path : {}", System.getProperty("java.library.path")); _logger.error("Failed to load {} {}", e.getMessage(), path); } catch (Exception e) { _logger.error("Failed to load {}", path); _logger.error(e.getMessage(), e); } return _loaded; }
From source file:arlocros.ArMarkerPoseEstimator.java
private void start(final ConnectedNode connectedNode) { // load OpenCV shared library System.loadLibrary(Core.NATIVE_LIBRARY_NAME); // read configuration variables from the ROS Runtime (configured in the // launch file) log = connectedNode.getLog();//from w w w . ja v a 2 s. co m // Read Marker Config markerConfig = MarkerConfig.createFromConfig(parameter.markerConfigFile(), parameter.patternDirectory()); // setup rotation vector and translation vector storing output of the // localization rvec = new Mat(3, 1, CvType.CV_64F); tvec = new MatOfDouble(1.0, 1.0, 1.0); camp = getCameraInfo(connectedNode, parameter); // start to listen to transform messages in /tf in order to feed the // Transformer and lookup transforms final TransformationService transformationService = TransformationService.create(connectedNode); // Subscribe to Image Subscriber<sensor_msgs.Image> subscriberToImage = connectedNode.newSubscriber(parameter.cameraImageTopic(), sensor_msgs.Image._TYPE); ComputePose computePose = null; try { final Mat cameraMatrix = CameraParams.getCameraMatrix(camp); final MatOfDouble distCoeffs = CameraParams.getDistCoeffs(camp); computePose = ComputePose.create(markerConfig, new Size(camp.width(), camp.height()), cameraMatrix, distCoeffs, this.parameter.visualization()); } catch (NyARException e) { logger.info("Cannot initialize ComputePose", e); } catch (FileNotFoundException e) { logger.info("Cannot find file when initialize ComputePose", e); } final ComputePose poseProcessor = computePose; subscriberToImage.addMessageListener(new MessageListener<sensor_msgs.Image>() { @Override public void onNewMessage(sensor_msgs.Image message) { // if (!message.getEncoding().toLowerCase().equals("rgb8")) { log.error("Sorry, " + message.getEncoding() + " Image encoding is not supported! EXITING"); System.exit(-1); } if (camp != null) { try { // image = Utils.matFromImage(message); // uncomment to add more contrast to the image if (parameter.blackWhiteContrastLevel() > 0) { log.trace("using BlackWhiteContrastLevel"); Utils.tresholdContrastBlackWhite(image, parameter.blackWhiteContrastLevel(), parameter.invertBlackWhiteColor()); } if (parameter.useThreshold()) { Imgproc.threshold(image, image, 200, 255, Imgproc.THRESH_BINARY); } // Mat cannyimg = new Mat(image.height(), image.width(), // CvType.CV_8UC3); // Imgproc.Canny(image, cannyimg, 10, 100); // Imshow.show(cannyimg); // image.convertTo(image, -1, 1.5, 0); // setup camera matrix and return vectors // compute pose if (poseProcessor.computePose(rvec, tvec, image)) { // notify publisher threads (pose and tf, see below) synchronized (tvec) { tvec.notifyAll(); } } } catch (Exception e) { logger.info("An exception occurs.", e); } } } }); // publish tf CAMERA_FRAME_NAME --> MARKER_FRAME_NAME final Publisher<tf2_msgs.TFMessage> tfPublisherCamToMarker = connectedNode.newPublisher("tf", tf2_msgs.TFMessage._TYPE); connectedNode.executeCancellableLoop(new CancellableLoop() { @Override protected void loop() throws InterruptedException { synchronized (tvec) { tvec.wait(); } QuaternionHelper q = new QuaternionHelper(); /* * http://euclideanspace.com/maths/geometry/rotations/ * conversions/matrixToEuler/index.htm * http://stackoverflow.com/questions/12933284/rodrigues-into- * eulerangles-and-vice-versa * * heading = atan2(-m20,m00) attitude = asin(m10) bank = * atan2(-m12,m11) */ // convert output rotation vector rvec to rotation matrix R Mat R = new Mat(3, 3, CvType.CV_32FC1); Calib3d.Rodrigues(rvec, R); // get rotations around X,Y,Z from rotation matrix R double bankX = Math.atan2(-R.get(1, 2)[0], R.get(1, 1)[0]); double headingY = Math.atan2(-R.get(2, 0)[0], R.get(0, 0)[0]); double attitudeZ = Math.asin(R.get(1, 0)[0]); // convert Euler angles to quarternion q.setFromEuler(bankX, headingY, attitudeZ); // set information to message TFMessage tfmessage = tfPublisherCamToMarker.newMessage(); TransformStamped posestamped = connectedNode.getTopicMessageFactory() .newFromType(geometry_msgs.TransformStamped._TYPE); Transform transform = posestamped.getTransform(); Quaternion orientation = transform.getRotation(); Vector3 point = transform.getTranslation(); point.setX(tvec.get(0, 0)[0]); point.setY(tvec.get(1, 0)[0]); point.setZ(tvec.get(2, 0)[0]); orientation.setW(q.getW()); orientation.setX(q.getX()); orientation.setY(q.getY()); orientation.setZ(q.getZ()); posestamped.getHeader().setFrameId(parameter.cameraFrameName()); posestamped.setChildFrameId(parameter.markerFrameName()); posestamped.getHeader().setStamp(connectedNode.getCurrentTime()); // frame_id too tfmessage.getTransforms().add(posestamped); tfPublisherCamToMarker.publish(tfmessage); } }); // publish Markers final Publisher<visualization_msgs.Marker> markerPublisher = connectedNode.newPublisher("markers", visualization_msgs.Marker._TYPE); connectedNode.executeCancellableLoop(new CancellableLoop() { @Override protected void loop() throws InterruptedException { // publish markers every 500ms Thread.sleep(500); // get marker points from markerConfig, each marker has 4 // vertices List<Point3> points3dlist = markerConfig.getUnordered3DPointList(); int i = 0; for (Point3 p : points3dlist) { Marker markermessage = markerPublisher.newMessage(); // FIXME If the markers are published into an existing frame // (e.g. map or odom) the node will consume very high CPU // and will fail after a short time. The markers are // probably published in the wrong way. markermessage.getHeader().setFrameId(parameter.markerFrameName()); markermessage.setId(i); i++; markermessage.setType(visualization_msgs.Marker.SPHERE); markermessage.setAction(visualization_msgs.Marker.ADD); // position double x = p.x; markermessage.getPose().getPosition().setX(x); double y = p.y; markermessage.getPose().getPosition().setY(y); double z = p.z; markermessage.getPose().getPosition().setZ(z); // orientation markermessage.getPose().getOrientation().setX(0); markermessage.getPose().getOrientation().setY(0); markermessage.getPose().getOrientation().setZ(0); markermessage.getPose().getOrientation().setW(1); // patterntSize markermessage.getScale().setX(0.1); markermessage.getScale().setY(0.1); markermessage.getScale().setZ(0.1); // color markermessage.getColor().setA(1); markermessage.getColor().setR(1); markermessage.getColor().setG(0); markermessage.getColor().setB(0); markerPublisher.publish(markermessage); } } }); // publish tf map --> odom final Publisher<tf2_msgs.TFMessage> tfPublisherMapToOdom = connectedNode.newPublisher("tf", tf2_msgs.TFMessage._TYPE); connectedNode.executeCancellableLoop(new CancellableLoop() { @Override protected void loop() throws InterruptedException { // since this is an infinite loop, wait to be notified if new // image was processed synchronized (tvec) { tvec.wait(); } // compute transform map to odom from map to // camera_rgb_optical_frame and odom to camera_rgb_optical_frame // map to camera_rgb_optical_frame Mat tvec_map_cam = new MatOfDouble(1.0, 1.0, 1.0); QuaternionHelper q = new QuaternionHelper(); // get rotation matrix R from solvepnp output rotation vector // rvec Mat R = new Mat(3, 3, CvType.CV_32FC1); Calib3d.Rodrigues(rvec, R); // transpose R, because we need the transformation from // world(map) to camera R = R.t(); // get rotation around X,Y,Z from R in radiants double bankX = Math.atan2(-R.get(1, 2)[0], R.get(1, 1)[0]); double headingY = Math.atan2(-R.get(2, 0)[0], R.get(0, 0)[0]); double attitudeZ = Math.asin(R.get(1, 0)[0]); q.setFromEuler(bankX, headingY, attitudeZ); // compute translation vector from world (map) to cam // tvec_map_cam Core.multiply(R, new Scalar(-1), R); // R=-R Core.gemm(R, tvec, 1, new Mat(), 0, tvec_map_cam, 0); // tvec_map_cam=R*tvec org.ros.rosjava_geometry.Quaternion rotation = new org.ros.rosjava_geometry.Quaternion(q.getX(), q.getY(), q.getZ(), q.getW()); double x = tvec_map_cam.get(0, 0)[0]; double y = tvec_map_cam.get(1, 0)[0]; double z = tvec_map_cam.get(2, 0)[0]; // create a Transform Object that hold the transform map to cam org.ros.rosjava_geometry.Vector3 translation = new org.ros.rosjava_geometry.Vector3(x, y, z); org.ros.rosjava_geometry.Transform transform_map_cam = new org.ros.rosjava_geometry.Transform( translation, rotation); // odom to camera_rgb_optical_frame GraphName sourceFrame = GraphName.of(parameter.cameraFrameName()); GraphName targetFrame = GraphName.of("odom"); org.ros.rosjava_geometry.Transform transform_cam_odom = null; if (transformationService.canTransform(targetFrame, sourceFrame)) { try { transform_cam_odom = transformationService.lookupTransform(targetFrame, sourceFrame); } catch (Exception e) { log.error(ExceptionUtils.getStackTrace(e)); log.info("Cloud not get transformation from " + parameter.cameraFrameName() + " to " + "odom! " + "However, " + "will continue.."); return; } } else { log.info("Cloud not get transformation from " + parameter.cameraFrameName() + " to " + "odom! " + "However, will " + "continue.."); // cancel this loop..no result can be computed return; } // multiply results org.ros.rosjava_geometry.Transform result = org.ros.rosjava_geometry.Transform.identity(); result = result.multiply(transform_map_cam); result = result.multiply(transform_cam_odom); // set information to ROS message TFMessage tfMessage = tfPublisherMapToOdom.newMessage(); TransformStamped transformStamped = connectedNode.getTopicMessageFactory() .newFromType(geometry_msgs.TransformStamped._TYPE); Transform transform = transformStamped.getTransform(); Quaternion orientation = transform.getRotation(); Vector3 vector = transform.getTranslation(); vector.setX(result.getTranslation().getX()); vector.setY(result.getTranslation().getY()); vector.setZ(result.getTranslation().getZ()); orientation.setW(result.getRotationAndScale().getW()); orientation.setX(result.getRotationAndScale().getX()); orientation.setY(result.getRotationAndScale().getY()); orientation.setZ(result.getRotationAndScale().getZ()); transformStamped.getHeader().setFrameId("map"); transformStamped.setChildFrameId("odom"); transformStamped.getHeader().setStamp(connectedNode.getCurrentTime()); // frame_id too tfMessage.getTransforms().add(transformStamped); tfPublisherMapToOdom.publish(tfMessage); // System.exit(0); } }); // Publish Pose connectedNode.executeCancellableLoop(new CancellableLoop() { @Override protected void loop() throws InterruptedException { // since this is an infinite loop, wait here to be notified if // new image was processed synchronized (tvec) { tvec.wait(); } final QuaternionHelper q = new QuaternionHelper(); // convert rotation vector result of solvepnp to rotation matrix Mat R = new Mat(3, 3, CvType.CV_32FC1); Calib3d.Rodrigues(rvec, R); // see publishers before for documentation final Mat tvec_map_cam = new MatOfDouble(1.0, 1.0, 1.0); R = R.t(); final double bankX = Math.atan2(-R.get(1, 2)[0], R.get(1, 1)[0]); final double headingY = Math.atan2(-R.get(2, 0)[0], R.get(0, 0)[0]); final double attitudeZ = Math.asin(R.get(1, 0)[0]); q.setFromEuler(bankX, headingY, attitudeZ); Core.multiply(R, new Scalar(-1), R); Core.gemm(R, tvec, 1, new Mat(), 0, tvec_map_cam, 0); final org.ros.rosjava_geometry.Quaternion rotation = new org.ros.rosjava_geometry.Quaternion( q.getX(), q.getY(), q.getZ(), q.getW()); final double x = tvec_map_cam.get(0, 0)[0]; final double y = tvec_map_cam.get(1, 0)[0]; final double z = tvec_map_cam.get(2, 0)[0]; final org.ros.rosjava_geometry.Vector3 translation = new org.ros.rosjava_geometry.Vector3(x, y, z); final org.ros.rosjava_geometry.Transform transform_map_cam = new org.ros.rosjava_geometry.Transform( translation, rotation); // odom to camera_rgb_optical_frame final GraphName sourceFrame = GraphName.of(parameter.cameraFrameName()); final GraphName targetFrame = GraphName.of("base_link"); org.ros.rosjava_geometry.Transform transform_cam_base = null; if (transformationService.canTransform(targetFrame, sourceFrame)) { try { transform_cam_base = transformationService.lookupTransform(targetFrame, sourceFrame); } catch (Exception e) { log.error(ExceptionUtils.getStackTrace(e)); log.info("Cloud not get transformation from " + parameter.cameraFrameName() + " to " + "base_link! " + "However, will continue.."); // cancel this loop..no result can be computed return; } } else { log.info("Cloud not get transformation from " + parameter.cameraFrameName() + " to " + "base_link!" + " However, " + "will continue.."); // cancel this loop..no result can be computed return; } // multiply results org.ros.rosjava_geometry.Transform current_pose = org.ros.rosjava_geometry.Transform.identity(); current_pose = current_pose.multiply(transform_map_cam); current_pose = current_pose.multiply(transform_cam_base); // check for plausibility of the pose by checking if movement // exceeds max speed (defined) of the robot if (parameter.badPoseReject()) { Time current_timestamp = connectedNode.getCurrentTime(); // TODO Unfortunately, we do not have the tf timestamp at // hand here. So we can only use the current timestamp. double maxspeed = 5; boolean goodpose = false; // if (current_pose != null && current_timestamp != null) { if (last_pose != null && last_timestamp != null) { // check speed of movement between last and current pose double distance = PoseCompare.distance(current_pose, last_pose); double timedelta = PoseCompare.timedelta(current_timestamp, last_timestamp); if ((distance / timedelta) < maxspeed) { if (smoothing) { double xold = last_pose.getTranslation().getX(); double yold = last_pose.getTranslation().getY(); double zold = last_pose.getTranslation().getZ(); double xnew = current_pose.getTranslation().getX(); double ynew = current_pose.getTranslation().getY(); double znew = current_pose.getTranslation().getZ(); final org.ros.rosjava_geometry.Vector3 smoothTranslation = new org.ros.rosjava_geometry.Vector3( (xold * 2 + xnew) / 3, (yold * 2 + ynew) / 3, (zold * 2 + znew) / 3); current_pose = new org.ros.rosjava_geometry.Transform(smoothTranslation, current_pose.getRotationAndScale()); last_pose = current_pose; } last_pose = current_pose; last_timestamp = current_timestamp; goodpose = true; } else { log.info("distance " + distance + " time: " + timedelta + " --> Pose rejected"); } } else { last_pose = current_pose; last_timestamp = current_timestamp; } // } // bad pose rejection if (!goodpose) { return; } } // set information to message final geometry_msgs.PoseStamped posestamped = posePublisher.newMessage(); Pose pose = posestamped.getPose(); Quaternion orientation = pose.getOrientation(); Point point = pose.getPosition(); point.setX(current_pose.getTranslation().getX()); point.setY(current_pose.getTranslation().getY()); point.setZ(current_pose.getTranslation().getZ()); orientation.setW(current_pose.getRotationAndScale().getW()); orientation.setX(current_pose.getRotationAndScale().getX()); orientation.setY(current_pose.getRotationAndScale().getY()); orientation.setZ(current_pose.getRotationAndScale().getZ()); // frame_id too posestamped.getHeader().setFrameId("map"); posestamped.getHeader().setStamp(connectedNode.getCurrentTime()); posePublisher.publish(posestamped); mostRecentPose.set(posestamped); } }); }
From source file:com.jeremydyer.nifi.ObjectDetectionProcessor.java
@Override protected void init(final ProcessorInitializationContext context) { final List<PropertyDescriptor> descriptors = new ArrayList<PropertyDescriptor>(); descriptors.add(DETECTION_DEFINITION_JSON); this.descriptors = Collections.unmodifiableList(descriptors); final Set<Relationship> relationships = new HashSet<Relationship>(); relationships.add(REL_ORIGINAL);// w w w. j a va 2 s.c o m relationships.add(REL_OBJECT_DETECTED); relationships.add(REL_NO_OBJECT_DETECTED); relationships.add(REL_FAILURE); this.relationships = Collections.unmodifiableSet(relationships); //Load the OpenCV Native Library System.loadLibrary(Core.NATIVE_LIBRARY_NAME); }
From source file:Exec.java
static Process execWindows(String[] cmdarray, String[] envp, File directory) throws IOException { if (envp != null || directory != null) { if (isJview()) // jview doesn't support JNI, so can't call putenv/chdir throw new IOException("can't use Exec.exec() under Microsoft JVM"); if (!linked) { try { System.loadLibrary("win32exec"); linked = true;/*from w w w. j a va 2s. co m*/ } catch (LinkageError e) { throw new IOException("can't use Exec.exec(): " + e.getMessage()); } } if (envp != null) { for (int i = 0; i < envp.length; ++i) putenv(envp[i]); } if (directory != null) chdir(directory.toString()); } return Runtime.getRuntime().exec(cmdarray); }
From source file:ml.dmlc.xgboost4j.java.NativeLibLoader.java
/** * load native library, this method will first try to load library from java.library.path, then * try to load library in jar package.// w ww.jav a 2s . c o m * * @param libName library path * @throws IOException exception */ private static void smartLoad(String libName) throws IOException { addNativeDir(nativePath); try { System.loadLibrary(libName); } catch (UnsatisfiedLinkError e) { try { String libraryFromJar = nativeResourcePath + System.mapLibraryName(libName); loadLibraryFromJar(libraryFromJar); } catch (IOException ioe) { logger.error("failed to load library from both native path and jar"); throw ioe; } } }