~/.profile is read by few processes, among them shells and desktop sessions. Everything else will simply inherit from its parent. So if you start your application from your desktop session, then restarting the desktop session is the only way. So logging out and back in appears to be the most sensible course of action.
There might be cases where the session is started from some script, and you could alter that script in such a way that it provides a mechanism to start a new session if the previous one exits, if some condition is satisfied. That would perhaps allow you to avoid giving your credentials once more. But this mechanism would be very hackish, and would have to be in place before you start the session.