Policy to prohibit users from running unsigned code?

Is there a policy setting to prohibit users from running unsigned code? There are policies that restrict the installation of code,
http://technet.microsoft.com/en-us/library/bb457006.aspx
What I need is to prohibit the running of unsigned code even for users with adminstrator rights. If needed, we can use our code signing certificate to sign code.

Here's a link with some additional information:
http://gpsearch.azurewebsites.net/#4954
Don't retire TechNet! -
(Don't give up yet - 13,085+ strong and growing)

Similar Messages

  • How to prevent users from running PRC: Transaction Import from WebADI form?

    Hi,
    We are 12.1.3 and trying to create a workflow to approve Project transactions coming through web ADI before they become effective. To this end, we want to prevent users from running the PRC: Transaction Import from the Web ADI.
    I know that if the checkbox Automatically run transaction import is not checked, the program does not run. But we want to hide this checkbox and not allow the possibility that the program could get triggered.
    To this end, we updated the BNE_INTEGRATORS_B with source='C'. This allows you to edit the integrator from Desktop Integration Manager.
    UPDATE BNE_INTEGRATORS_B SET SOURCE ='C' WHERE  INTEGRATOR_CODE ='PAXTTRXB'
    In the 4th step, where the value for Uploader Parameters is set, we have set boolean value to No. These are the fields on the page:
    Parameter Name: bne:import
    Display Name: Start Transaction Upload
    Data Type: Boolean
    Category: Field
    Default Value: Boolean Flag: No
    Description: start Transaction Import Concurrent Request
    Display Options: Displayed: Unchecked
    Display Options: Enabled: Checked
    Display Options: Required: Checked
    Prompt Left: Automatically submit Transaction import
    Display Type: Check Box
    Maximun Size: 100
    Display Size:100
    Now the checkbox is not appearing for the user to check it, But the program is automatically running when you hit Upload in the WebADI. 

    Hi ,
    Try removing the PRC: Transaction Import Program from the request group for the responsibility used by customers to submit the WebADI and then check if the program launches.
    Regards,
    Raghavan

  • Changing user from one company code to another

    Dera all,
    we are currently using SRM 5.0.
    presently one user assigned to co.code X, we want to assign this user to co.code Y .he sholud get all the attributes of  co.code Y and should not carry any attributes of co.code X.
    Kindly help me out.
    This is very urgent...
    Thanks in advance
    Rgds
    GK

    Hi,
       You can then unassign the user from Co code X and assign  under the co.code Y  in the Org Structure i tracn PPOMA_BBP.
    BR,
    Disha.
    Pls reward points for useful answers.

  • Since 30 October 2012, Mozilla has blocked users from running YouTube on Firefox 3.6.28 running on Mac OS X 10.5.8

    The last Flash player plug-in that can run on G4 ppc computers is 10.1.102.64. On Oct 30 2012 Mozilla blocked _all_ versions of Flash below version 10.3.183.19 from running on _all_ versions of Firefox. Can this block not be lifted from ppc versions of Firefox (below 3.6.28)?

    P.S. If the above doesn't work, even after restarting Firefox:
    You could try disabling the blocklist, which isn't normally recommended since it will remove ALL blocks, many of which are in place for security reasons. If you want to do this,
    '''FIRST: '''Change the '''extensions.blocklist.enabled''' preference to '''false''' in about:config
    # In the [[Location bar autocomplete|Location bar]], type '''about:config''' and press '''Enter'''. The about:config "''This might void your warranty!''" warning page may appear.
    # (If necessary) Click '''I'll be careful, I promise!''', to continue to the about:config page.
    # Double-click on '''extensions.blocklist.enabled''' in the list of preferences to change its value to '''false'''.
    '''NEXT:''' Quit Firefox, then open the [[Profiles|Firefox profile folder]] and remove the file '''blocklist.xml'''
    Ref: https://bugzilla.mozilla.org/show_bug.cgi?id=754723#c50

  • How to Retrcit user from accessing t.code mm03 by plant wise.

    Hi All,
    User1 should have access for materialA from mm03(Display mat) for plantA but not for plantB. what roles to be given to user1 in order to do this settings. Please reply.
    Regards in Advance,
    Aiella

    Hi,
    "Created another role2 for plantB M_MATE_WRK. What authorizations given to object M_MATE_WRK? "
    You should be able to answer that,
    M_MATE_WRK has two fields
    Activity
    Plant
    so according to your rek, you could use the solution which  Mylène Dorias provided
    Vijay, you have said you have created composite role and assigned user1 to it, obviously he will access to both the roles
    role 1 you give access to plant A
    role 2 you give access to plant B
    and assign both of them to User1, obviously he is gonna have access to both the plants,
    i hope i explained you well if not could you elaborate your issue
    Thanks,
    Vijay

  • Xbmc user from XBMC package unable to run systemctl --user

    I'm posting this in multimedia rathar than another section as this appears to be an issue with the 'xbmc' user installed as part of the Arch xbmc package from pacman. 
    When logged in at the xbmc user (either via sudo su - xbmc, or direct login after setting a pssword for the user), when I attempt to run any systemctl --user <command> I get the following error:
    ~]$ whoami && systemctl --user status dbus
    xbmc
    Failed to get D-Bus connection: Connection refused
    But I can run non --user commands with no problem:
    ~]$ whoami && systemctl status dbus
    xbmc
    ● dbus.service - D-Bus System Message Bus
    Loaded: loaded (/usr/lib/systemd/system/dbus.service; static)
    Active: active (running) since Wed 2014-08-13 16:50:15 CDT; 2 days ago
    Docs: man:dbus-daemon(1)
    Main PID: 265 (dbus-daemon)
    CGroup: /system.slice/dbus.service
    └─265 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
    Also, other "normal" users (ones not created by a package, such as my own user) do not have this problem:
    ~]$ whoami && systemctl --user status dbus
    sylverpyro
    ● dbus.service
    Loaded: not-found (Reason: No such file or directory)
    Active: inactive (dead)
    the reason this is an issue is until very recently the btsync package from AUR used btsync@<username> unit files to run the service for the specified user.  With those unit files now depricated in systemd, I need to be able to run systemctl --user commands to enable the service correctly, but I just end up with a the ablove D-Bus error:
    ~]$ whoami && systemctl --user start btsync
    xbmc
    Failed to get D-Bus connection: Connection refused
    Originally I thought it may be because the D-Bus session wasn't getting passed to the user properly, however even setting up the D-Bus session manually doesn't get me very far:
    ~]$ whoami && dbus-launch
    xbmc
    DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-A4VaDZXDOu,guid=9c85fdad1bcc90f8e1d5f52753eea211
    DBUS_SESSION_BUS_PID=18081
    ~]$ export DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-A4VaDZXDOu,guid=9c85fdad1bcc90f8e1d5f52753eea211
    ~]$ whoami && systemctl --user start btsync
    xbmc
    Failed to start btsync.service: Process org.freedesktop.systemd1 exited with status 1
    Is there a permission, group, or UID restriction somewhere that I am missing or unaware of that prevents certain users from running systemctl --user commands?

    Used the following commands, it deleted the user and allowed me import user from LDAP
    run sql select userid, pkid from enduser where userid = 'pjon'
    run sql delete FROM enduserappservermap WHERE fkenduser='745c067f-767c-459d-b2f1-6e88bbad915e'

  • How to restrict users working on Windows 7 clients from accessing Windows Explorer and other systems in the network through Group Policy with a domain controller running on Windows Server 2008 r2

    Dear All,
    We are having an infrastructure setup of around 500 client computers managed through group policy.
    Recently the domain controllers have been migrated from Windows Server 2003 to Server 2008 R2.
    Since this account requires extremely strict environment, we need to figure the solution for restricting the users from access anything locally.
    It would be great if you can assist me with the following query.
    How to restrict users logged on Windows 7 clients from accessing Windows Explorer and browsing other systems in the network through Group Policy with a domain controller running on Windows Server 2008 r2 ?
    Can we disable Network Tab on the left hand pane ?
    explorer.exe is blocked already, but users are able to enter the Windows Explorer by clicking on the name which is visible on the Start Menu.

    >   * explorer.exe is blocked already, but users are able to enter the
    >     Windows Explorer by clicking on the name which is visible on the
    >     Start Menu.
    You cannot block explorer.exe when you do not replace the shell - the
    desktop you see effectively IS explorer.exe...
    Your requirement sounds like you need a custom shell:
    http://gpsearch.azurewebsites.net/#2812
    Martin
    Mal ein
    GUTES Buch über GPOs lesen?
    NO THEY ARE NOT EVIL, if you know what you are doing:
    Good or bad GPOs?
    And if IT bothers me - coke bottle design refreshment :))

  • Troubles with opening attachments when user have restristed priviledge to run executable code only from ProgramFiles and Windows folders.

    I try to restrict users from executing any potentialy dangerous files. So according to Windows policies I set. Users can run any application from Program Files, Program Files (x86), Windows and all users' desktop folder. Users have no permission to write anything in this folders. When user duble clicks for example *.doc document on his desktop - document opens with MS Word just fine. But when user try to open this document from e-mail attachment directly (selecting open with MS Word, instead of saving) - he sees an error - "This action is restricted by local policy. Ask your system administrator." (not exact text).
    So I want, users able to open attachments from Thunderbird automatically, but not able to run any application or link, except Program Files, Program Files (x86), Windows and all users' desktop folder. How can I get this result?
    Thanks in advance.
    Serious Diman.
    P.S. Sorry for my bad english. It's not my native language.

    Thanks for answering.
    I found out what was happening.
    This strange "bug" affects several computers with Windows 7 Ultimate in my case.
    When you create SRP (software restriction policies) it creates two default rules for running programs: windows folder and Program Files folder. Manually I add "C:\Program Files (x86)" in unrestricted locations. BUT Windows and Program Files folder linked in default rules not directly, but through registry keys. And this part seems tricky. You CAN run executables from Program Files. You CAN run executables from Program Files (x86). But if Thunderbird or Firefox try to run MSword, or excel or writer for opening *.doc or *.odt or some other downloaded file - running from Program Files blocked by SRP.
    So to resolve this problem you just need to replace rules for undirect paths like %HKLM/software/microsoft/windows ... etc% with direct ones, such as "C:/Windows" and "C:/Program Files/". After this all works fine. Attachments and downloaded files opens automatically without problems.

  • This program has been blocked for your protection/ An Administrator has blocked you from running this program/ Return code: 1625

    This program has been blocked for your protection/ An Administrator has blocked you from running this program/ Return code: 1625
    If you get a message saying, “Publisher: Not trusted,” the printing functionality you are attempting to use may become blocked while downloading, installing or attempting to run.
    You may also see messages such as:
    MSIExec installation error (Return code:1625)
    The recommended software listed below could not be installed
    “Do you want to allow the following the program from an unknown publisher to make changes to this program”
    “This program has been blocked for your protection”
    “Blocked”
    “Not trusted”
    The Windows User Account Control message may look like this.
    You may get this message when installing, uninstalling, or updating HP software for Windows from the product CD, from software previously downloaded from www.hp.com, or from running HP Smart Install by connecting a printer via USB cable.
    The solution will vary depending on the products that you are using. Here is a helpful document for HP printers that will walk you through what you can do.
    John
    I work on behalf of HP.

    Hey @kat54 ,
    Welcome to the HP Forums!
    I understand you're receiving an error stating "This program has been blocked for your protection."
    You can read about this error here: "Blocked", "User Account Control", "Not trusted", or "Return code: 1625" message in Windows.
    You will find a link for Printers here which directs you to the HP Update Software Utility to resolve the problem. When you install this utility ensure you select version 5.005.002.002 or later.
    Make sure the utility you've downloaded is for your exact product and operating system.
    If this does not resolve the issue please call our technical support at 800-474-6836. If you live outside the US/Canada Region, please click the following link to get the support number for your region: Phone Assist Worldwide.
    Thanks!
    Please click the "Kudos, Thumbs Up" at the bottom of this post if you want to say "Thanks" for helping!
    Please click "Accept as Solution" if you feel my post solved your issue, it will help others find the solution.
    The Great Deku Tree
    I work on behalf of HP.

  • How do I run users from an external hard drive?

    I used to have a 2 TB hard drive in my iMac. One of the users contains all my music, photos and videos. It's a very large file, of course.
    I have just swapped out the 2 TB drive for a 120 GB SSD and reconnected the 2 TB drive as an external HD. The problem is, I've only got 60 GB of space left on it and that's not enough room for my media user. It's sitting on the external drive but I can't figure out how to access it.
    I would like to be able to (1) run the media user from the external drive or, if that's not possible, (2) move the media user to the SSD but store the music, photos, video etc. on the external HD.
    Any tips? Thanks!

    OK, here's how to do it on Photo Booth. It's a little different for every app, it seems.
    On Photo Booth, you don't use aliases. The app doesn't like them. Instead, start by deleting the Photo Booth Library file in the new user. (You only want to do this if you have no photos in Photo Booth, I assume. Remember I've started with a completely new user.) Then launch Photo Booth. It will tell you there's no library and ask you to either create one or point to one.
    Then point to your Photo Booth Library file on your external drive. (Again, permissions have to be set to allow the SSD drive access.)
    By the way, I am not an expert in any of this. There may be better ways of doing all this, but I couldn't find them on discussions so I'm recording them here in case they help people in future. Feel free to chime in with a more elegant solution, if there is one! But this all does seem to be working so far.

  • Blocking User from accessing wrong customer code in VA01

    Hi SAP SD GURU,
    my finance user uses rebate recipent in sales order creation for rebate settlement.
    my operation user uses one-time customer code in sales order for sales.
    Both type of customer codes can be used in sales order creation under different order type.
    The problem arises when operation staff uses rebate recipent code to create sales order and then billing.
    My finance User want this to stop.
    How can I block the operation User from continuing the sales entry when they select the rebate recipent in a sales order entry?
    Is there any available setting in the customer master that allow me to do so?
    Is there any setting in the SPRO that can control this?

    Hi Colin,
    Well you need to control these through the user profile & roles
    you can do this in SU01 which a Basis person can help you out with .....
    now as said User X wants authorisation to va01  ( Rebate)
                      User Y wants Authorisation to va01 ( One time)
    since here we are not restricting any user for VA01 auth , the Basis person can define the role only till the transaction level not beyond that in standard SAP transaction and here you want to restrict user to not use different customer code
    as per my knowledge i dont think that is possible but still have a check with the Basis team
    Hope this helps
    Cheers

  • How to prevent users from entering '+' or '0' in front of country code in the phone number field?

    Requirement:
    How can I prevent guest users from entering '+' sign or '0' in front of country-code in the visitor phone number field during self registration?
    Few SMS service providers are not looking for '+' sign or '0' or '00' in front of the international phone numbers to trigger the sms. Providing these values in front of country code during self-registration may fail to deliver the sms to recipient.
    Solution:
    Using a simple regular expression, you can validate the entered phone number during the guest registration. 
    The below regular expression will help you to validate the phone number and allows to register only  when the phone number is not staring with '+' or '0'. 
    ^[1-9][0-9](\d{7}|\d{8}|\d{9}|\d{10}|\d{11}|\d{12})$
    It also performs the below validations.
    only numbers are allowed.
    first digit of the entered phone number should be 1 to 9, so '+' or '0' is not allowed. 
    numbers from 0 to 9 are allowed from the second digit.
    also validates phone number length, the length of the phone number should be 9 to 14.
    Configuration:
    To add the above regex in the visitor_phone number filed, please navigate to ClearPass Guest >> Configuration >> (Pages)Guest Self-Registration >> select the self-registration page and go to Edit >> Register Page >> Form >>  select the filed visitor_phone and set the Validator to " ISRegexMatch" and enter the above regex in the Validator Argument filed as shown below.
    Note:  Edit the Validation Error as per your requirement.
    Verification
    Adding the given regex will validate the phone number and prevent the guest user from registering the phone number starts with '+' or '0'.
    Please find below the sample outputs for your reference.
    Result when phone number starts with '+' or '0'.
    Successful registration.

    Is this a Mac Preview issue?

  • Message (on one account) when logging in: The user account running the Configuration Manager console has insufficient permissions to read information from the Configuration Manager site database.

    After installing the reportservice/database i cannot use the Configuration Manager Console 2012 anymore with my own AD account. (The accounts of my colleagues are stil working)
    When i login i get the following message:
    The user account running the Configuration Manager console has insufficient permissions to read information from the Configuration Manager site database. The account must belong to a security role in Configuration Manager. The account must also have
    the Windows Server Distributed Component Object Model (DCOM) Remote Activation permission for the computer running the Configuration Manager site server and the SMS Provider.
    I checked the following:
    I am a administrative user in SCCM (Full Administrator)
    I am a member of the administrator group on the server
    Deleted HKEY_CURRENT_USER\Software\Microsoft\ConfigMgr10
    I tried to start it on multiple workstations and deleted my roaming profile
    Any more suggestions?

    Hi,
    Maybe you could have a look on the below blog.
    http://blog.nimbo.com/how-to-disable-user-account-control-in-windows-server-2012/
    (Note: Microsoft provides third-party contact information to help you find technical support. This contact information
    may change without notice. Microsoft does not guarantee the accuracy of this third-party contact information.)
    Best Regards,
    Joyce Li
    We
    are trying to better understand customer views on social support experience, so your participation in this
    interview project would be greatly appreciated if you have time.
    Thanks for helping make community forums a great place.

  • JAVA CODE Restricting users from entering Fractional numbers in Data forms

    Hi,
    is there anyone who can help me with the Java Script code of ValidateData.js file?? I am very novice in scripting and find it very difficult to write a proper javascript code to restrict the users from entering fractional numbers to HEADCOUNT cell. I would very much appreciate if i get some help from anyone out there.
    Users should be able to only enter whole numbers to the cells for Headcount entry.
    Kindly give me the layout of the script to be used. Has anyone out there ever done anything like this??
    Looking forward for a help.
    Thanks.

    Hi,
    I think customCellEnterPre and customCellValidatePre is the function you'd be using
    http://download.oracle.com/docs/cd/E17236_01/epm.1112/hp_admin/apas02s01.html
    http://download.oracle.com/docs/cd/E17236_01/epm.1112/hp_admin/apas02s03.html
    http://download.oracle.com/docs/cd/E17236_01/epm.1112/hp_admin/apa.html
    You can refer to SampleValidateData.js that's within Planning deployment custom js folder for further reference and sample usage.
    Cheers,
    Alp

  • Running Matlab code from java code

    Ok so I need to make a java gui interface to run Matlab code. After a lot of search I am aware of three approaches,the com.mathworks.jmi package, JNI and i/o streams. So as far as the first approach I cannot find that package nowhereto downlaod, so please if anyone knows where to find it, or why I cannot find it... As far as the second and third approach, I need this to run on both linux and windows so JNI is the only way. So first of all if someone has another approach to suggest, I would like to hear! So I have found code to do this but it is not working and the problem is that there is c code in all this, and my c knowledge is not good at all, so as you have probably understand this is more like a c problem than java, but I'm not completely sure. Anyway I'm posting all the code I use, then the commands I used to compile it and at last the problem.
    Engine.java
    package MatlabNativeInterface;
    import java.io.*;
    * <b>Java Engine for Matlab via Java Native Interface (JNI)</b><br>
    * This class demonstrates how to call Matlab from a Java program via
    * JNI, thereby employing Matlab as the computation engine.
    * The Matlab engine operates by running in the background as a separate
    * process from your own program.
    * <p>
    * Date: 04.04.03
    * <p>
    * Copyright (c) 2003 Andreas Klimke, Universit&#65533;t Stuttgart
    * <p>
    * Permission is hereby granted, free of charge, to any person
    * obtaining a copy of this software and associated documentation
    * files (the "Software"), to deal in the Software without
    * restriction, including without limitation the rights to use, copy,
    * modify, merge, publish, distribute, sublicense, and/or sell copies
    * of the Software, and to permit persons to whom the Software is
    * furnished to do so, subject to the following conditions:
    * <p>
    * The above copyright notice and this permission notice shall be
    * included in all copies or substantial portions of the Software.
    * <p>
    * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
    * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
    * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
    * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
    * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
    * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
    * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
    * OTHER DEALINGS IN THE SOFTWARE.
    * @author W. Andreas Klimke, University of Stuttgart
    *         ([email protected])
    * @version 0.1
    public class Engine {
         * Calls the function <code>engOpen</code> of Matlab's C Engine library.
         * Excerpts from the Matlab documentation:
         * "On UNIX systems, if startcmd is NULL or the empty string,
         * <code>engOpen</code> starts MATLAB on the current host using the
         * command <code>matlab</code>. If startcmd is a hostname, <code>engOpen
         * </code> starts MATLAB on the designated host by embedding the specified
         * hostname string into the larger string:
         * <code>rsh hostname \"/bin/csh -c 'setenv DISPLAY\ hostname:0; matlab'\"
         * </code>. If startcmd is any other string (has white space in it, or
         * nonalphanumeric characters), the string is executed literally to start
         * MATLAB. On Windows, the startcmd string must be NULL."<br>     
         * See the Matlab documentation, chapter "External Interfaces/API
         * Reference/C Engine Functions" for further information.
         * @param startcmd The start command string.
         * @throws IOException Thrown if starting the process was not successful.
      public native void open(String startcmd) throws IOException;
          * Calls the function <code>engClose</code> of Matlab's C Engine
          * library.     This routine allows you to quit a MATLAB engine session.
          * @throws IOException Thrown if Matlab could not be closed.
         public native void close() throws IOException;
         * Calls the function <code>engEvalString</code> of Matlab's C Engine
         * library. Evaluates the expression contained in string for the MATLAB
         * engine session previously started by <code>open</code>.
         * See the Matlab documentation, chapter "External Interfaces/API
         * Reference/C Engine Functions" for further information.
         * @param str Expression to be evaluated.
         * @throws IOException Thrown if data could not be sent to Matlab. This
         *                     may happen if Matlab is no longer running.
         * @see #open
      public native void evalString(String str) throws IOException;
          *  Reads a maximum of <code>numberOfChars</code> characters from
          * the Matlab output buffer and returns the result as String.<br>
          * If the number of available characters exceeds <code>numberOfChars</code>,
          * the additional data is discarded. The Matlab process must be opended
          * previously with <code>open()</code>.<br>
          * @return String containing the Matlab output.
          * @see #open
          * @throws IOException Thrown if data could not be received. This may
          *                     happen if Matlab is no longer running.
      public native String getOutputString(int numberOfChars);
          * Initialize the native shared library.
      static {
             System.loadLibrary("Engine");//I have changed this
         //System.loadLibrary("engineJavaMatlab");
         System.err.println("Native Matlab shared library loaded.");
    }Engine.c
    #include <jni.h>
    #include "MatlabNativeInterface_Engine.h"
    #include <stdio.h>
    #include "engine.h"
    #define DEFAULT_BUFFERSIZE 65536
    Engine* ep;
    char outputBuffer[DEFAULT_BUFFERSIZE];
    JNIEXPORT void JNICALL
    Java_MatlabNativeInterface_Engine_open(JNIEnv *env, jobject obj, const jstring startcmd) {
      const char *c_string = (*env)->GetStringUTFChars(env, startcmd, 0);
      if (!(ep = engOpen(c_string))) {
        jclass exception;
        (*env)->ReleaseStringUTFChars(env, startcmd, c_string);
        exception = (*env)->FindClass(env, "java/io/IOException");
        if (exception == 0) return;
        (*env)->ThrowNew(env, exception, "Opening Matlab failed.");
        return;
      (*env)->ReleaseStringUTFChars(env, startcmd, c_string);
         /* indicate that output should not be discarded but stored in */
         /* outputBuffer */
      engOutputBuffer(ep, outputBuffer, DEFAULT_BUFFERSIZE);
    JNIEXPORT void JNICALL
    Java_MatlabNativeInterface_Engine_close(JNIEnv *env, jobject obj) {
         if (engClose(ep) == 1) {
           jclass exception;
        exception = (*env)->FindClass(env, "java/io/IOException");
        if (exception == 0) return;
        (*env)->ThrowNew(env, exception, "Closing Matlab failed.");
        return;
    JNIEXPORT void JNICALL
    Java_MatlabNativeInterface_Engine_evalString(JNIEnv *env, jobject obj, const jstring j_string) {
      const char *c_string;
         c_string = (*env)->GetStringUTFChars(env, j_string, 0);
      if (engEvalString(ep, c_string) != 0) {
           jclass exception;
        exception = (*env)->FindClass(env, "java/io/IOException");
        if (exception == 0) return;
        (*env)->ThrowNew(env, exception, "Error while sending/receiving data.");
      (*env)->ReleaseStringUTFChars(env, j_string, c_string);
    JNIEXPORT jstring JNICALL
    Java_MatlabNativeInterface_Engine_getOutputString(JNIEnv *env, jobject obj, jint numberOfChars) {
      char *c_string;
         jstring j_string;
         if (numberOfChars > DEFAULT_BUFFERSIZE) {
              numberOfChars = DEFAULT_BUFFERSIZE;
      c_string = (char *) malloc ( sizeof(char)*(numberOfChars+1) );
         c_string[numberOfChars] = 0;
      strncpy(c_string, outputBuffer, numberOfChars);
         j_string = (*env)->NewStringUTF(env, c_string);
         free(c_string);
      return j_string;
    }MatlabNativeInterface_Engine.h (as produced by javah)
    /* DO NOT EDIT THIS FILE - it is machine generated */
    #include <jni.h>
    /* Header for class MatlabNativeInterface_Engine */
    #ifndef _Included_MatlabNativeInterface_Engine
    #define _Included_MatlabNativeInterface_Engine
    #ifdef __cplusplus
    extern "C" {
    #endif
    * Class:     MatlabNativeInterface_Engine
    * Method:    open
    * Signature: (Ljava/lang/String;)V
    JNIEXPORT void JNICALL Java_MatlabNativeInterface_Engine_open
      (JNIEnv *, jobject, jstring);
    * Class:     MatlabNativeInterface_Engine
    * Method:    close
    * Signature: ()V
    JNIEXPORT void JNICALL Java_MatlabNativeInterface_Engine_close
      (JNIEnv *, jobject);
    * Class:     MatlabNativeInterface_Engine
    * Method:    evalString
    * Signature: (Ljava/lang/String;)V
    JNIEXPORT void JNICALL Java_MatlabNativeInterface_Engine_evalString
      (JNIEnv *, jobject, jstring);
    * Class:     MatlabNativeInterface_Engine
    * Method:    getOutputString
    * Signature: (I)Ljava/lang/String;
    JNIEXPORT jstring JNICALL Java_MatlabNativeInterface_Engine_getOutputString
      (JNIEnv *, jobject, jint);
    #ifdef __cplusplus
    #endif
    #endifand a Main.java
    import MatlabNativeInterface.*;
    import java.io.*;
    * Demonstration program for connecting Java with Matlab using the Java
    * Native Interface (JNI). Wrapper functions access Matlab via Matlab's
    * native C Engine library.
    public class Main {
         public static void main(String[] args) {
              Engine engine = new MatlabNativeInterface.Engine();
              try {
                   // Matlab start command:
                   engine.open("matlab -nosplash -nojvm");
                   // Display output:
                   System.out.println(engine.getOutputString(500));
          // Example: Solve the system of linear equations Ax = f with
                   // Matlab's Preconditioned Conjugate Gradients method.
                   engine.evalString("A = gallery('lehmer',10);");  // Define Matrix A
                   engine.evalString("f = ones(10,1);");            // Define vector f
                   engine.evalString("pcg(A,f,1e-5)");              // Compute x
                   // Retrieve output:
                   System.out.println(engine.getOutputString(500));
                   // Close the Matlab session:
                   engine.close();
              catch (Exception e) {
                   e.printStackTrace();
    }so I compile them with:
    javac -d classes @files.txt
    javah -classpath classes MatlabNativeInterface.Engine
    cc -shared -I/usr/java/jdk1.6.0_06/include/ -I/usr/java/jdk1.6.0_06/include/linux/ -I/usr/local/share/matlab7.6/extern/include/ Engine.c -o libEngine.soso everything gets compiled well and then I run Main:
    /javas/classes/_>mv libEngine.so classes/
    /javas/classes/_>cd classes/
    /javas/classes/_>java -Djava.library.path=. Main
    Exception in thread "main" java.lang.UnsatisfiedLinkError: /javas/classes/libEngine.so: /javas/classes/libEngine.so: undefined symbol: engOpen
            at java.lang.ClassLoader$NativeLibrary.load(Native Method)
            at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1751)
            at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1676)
            at java.lang.Runtime.loadLibrary0(Runtime.java:823)
            at java.lang.System.loadLibrary(System.java:1030)
            at MatlabNativeInterface.Engine.<clinit>(Engine.java:99)
            at Main.main(Main.java:11)So... please help!

    I need this to run on both linux and windows so JNI is the only wayHuh? Streams in general work on windows and linux. So maybe some more specific info
    about what you mean by "i/o streams."
    I am aware of three approachesA fourth approach is to write an application in C which communicates with Matlab directly
    and then uses some idiom such as sockets to allow communication to java. This would generally
    be the method that I would prefer over all others since it makes debugging and testing easier.
    undefined symbol: engOpenSomehow you are missing a library (nothing specific to to with JNI nor java) in you JNI code.
    Odd error since I would normally expect something else. Try using System.load/loadLibrary() in java to explicitly load the Matlab
    library (or libraries) before your JNI library. The load/LoadLibrary calls don't care if it is JNI or not.

Maybe you are looking for