You will need to use an amplifier that has a low enough input offset current and input offset voltage. To use that circuit, the input bias current should be much lower than your desired output current, and the offset voltage should be much greater than the output current multiplied by R1. The definition of "much" depends on your desired accuracy.
Op-amp input bias current causes a direct 1:1 error in the output current of the circuit \$e_{I_{ib}} = I_b\$, and offset voltage represents an error of \$e_{V_{os}} = \$\$V_{os} \over R_1\$.
JFET gate leakage will also add a small error, usually well under 1nA at room temperature (40pA maximum @25°C in the case of the 2N3456).
You could try to substitute a MOSFET in the circuit, however you are likely to have stability issues if the MOSFET is large and the value of R1 is less than about 100 ohms. Normally we'd do an "inside the loop" compensation to provide a separate AC feedback path so the gate capacitance doesn't cause oscillation.
One "general purpose" precision op-amp that would be good for this sort of thing is the OPA277, about $2.50 in small quantities. It has < 50uV \$V_{os }\$, low \$TCV_{os}\$, high gain, and bias current of only a few nA over temperature.