runtime interview questions
Top runtime frequently asked interview questions
How do I get my project's runtime dependencies copied into the target/lib
folder?
As it is right now, after mvn clean install
the target
folder contains only my project's jar, but none of the runtime dependencies.
Source: (StackOverflow)
Can anyone please give me a good understanding of whats the difference between run-time and compile-time?
Source: (StackOverflow)
We recently had a problem where, after a series of commits had occurred, a backend process failed to run. Now, we were good little boys and girls and ran rake test
after every check-in but, due to some oddities in Rails' library loading, it only occurred when we ran it directly from Mongrel in production mode.
I tracked the bug down and it was due to a new Rails gem overwriting a method in the String class in a way that broke one narrow use in the runtime Rails code.
Anyway, long story short, is there a way, at runtime, to ask Ruby where a method has been defined? Something like whereami( :foo )
that returns /path/to/some/file.rb line #45
? In this case, telling me that it was defined in class String would be unhelpful, because it was overloaded by some library.
I cannot guarantee the source lives in my project, so grepping for 'def foo'
won't necessarily give me what I need, not to mention if I have many def foo
's, sometimes I don't know until runtime which one I may be using.
Source: (StackOverflow)
Assume we have a trivial Java program that consists of just one class:
public class HelloWorld {
private static void replacable(int i) {
System.out.println("Today is a nice day with a number " + i);
}
public static void main(String[] args) throws Exception {
for(int i = 0; i < 100000; ++i) {
replacable(i);
Thread.sleep(500);
}
}
After it's compiled and run, output will be this:
Today is a nice day with a number 0
Today is a nice day with a number 1
Today is a nice day with a number 2
Today is a nice day with a number 3
...
My question: does there exist (or is there on the horizon) some way to swap replacable
method at runtime? Something like writing another version of HelloWorld
with a new version of replacable
, compiling it and then the old version in an already running JVM?
So, if I write the new version like this:
private static void replacable(int i) {
System.out.println("Today is an even nicer day with a number " + i);
}
is there something similar to Erlang's hot code swapping where I can do this:
- run original program
- write modified version
- using a command line program, connect to running JVM and replace existing method
so that, during runtime, this will happen:
Today is a nice day with a number 15000
Today is a nice day with a number 15001
Today is an even nicer day with a number 15002
Today is an even nicer day with a number 15003
...
Assume that above program is standalone, runs in a standard Java SE environment, there is nothing else on classpath, so it's almost a Hello world style program.
Note: I know that technologies like bytecode manipulation (cglib), aspectJ, jRebel, JMX, hotswapping of methods in Java EE etc. exist, but they aren't what I'm thinking of. Think of Erlang.
Source: (StackOverflow)
I am currently furiously digging through all the docs, and haven't quite found what I'm looking for. I suspect it is a real d'oh! answer.
I simply need to find the active storyboard in the main bundle, and want to know the best way to do this.
This is so that I can use the [UIStoryboard storyboardWithName:@"XXX" bundle:mainBundle]
to extract the running storyboard.
I know how to kludge it by switching on the idiom, but I feel that this is a...kludge.
What's a correct way of doing this?
UPDATE:
OK. I found it.
As usual, on Stack Overflow (the official Apple Documentation Site ;).
Here's the code I settled on:
UIStoryboard *st = [UIStoryboard storyboardWithName:[[NSBundle mainBundle].infoDictionary objectForKey:@"UIMainStoryboardFile"] bundle:[NSBundle mainBundle]];
Source: (StackOverflow)
Is it possible to add an annotation to an object (in my case in particular, a Method) at runtime?
For a bit more explanation: I have two modules, moduleA and moduleB. moduleB depends upon moduleA, which doesn't depend upon anything. (modA is my core datatypes and interfaces and such, modB is db/data layer) modB also depends on externalLibrary. In my case, modB is handing off a class from modA to externalLibrary, which needs certain methods to be annotated. The specific annotations are all part of externalLib and, as I said, modA doesn't depend on externalLib and I'd like to keep it that way.
So, is this possible, or do you have suggestions for other ways of looking at this problem?
Source: (StackOverflow)
This question already has an answer here:
Is it possible to add a file (not necessarily a jar file) to java classpath at runtime.
Specifically, the file already is present in the classpath, what I want is whether I can add a modified copy of this file to the classpath.
Thanks,
Source: (StackOverflow)
When experiencing networking problems on client machines, I'd like to be able to run a few command lines and email the results of them to myself.
I've found Runtime.exec will allow me to execute arbitrary commands, but Collecting the results in a String is more interesting.
I realize I could redirect output to a file, and then read from the file, but my spidey sense is telling me there's a more elegant way of doing it.
Suggestions?
Source: (StackOverflow)
I have an old dll that uses the Microsoft Visual C++ 2003 (7.1) run time package. Unfortunately I don't have that DLL around anymore. Short of reinstalling VS2003, is there another way to get the run time redistributable dll?
Source: (StackOverflow)
I have a method I am using to execute a command on the local host. I'd like to add a timeout parameter to the method so that if the command being called doesn't finish in a reasonable amount of time the method will return with an error code. Here's what it looks like so far, without the ability to timeout:
public static int executeCommandLine(final String commandLine,
final boolean printOutput,
final boolean printError)
throws IOException, InterruptedException
{
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec(commandLine);
if (printOutput)
{
BufferedReader outputReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
System.out.println("Output: " + outputReader.readLine());
}
if (printError)
{
BufferedReader errorReader = new BufferedReader(new InputStreamReader(process.getErrorStream()));
System.out.println("Error: " + errorReader.readLine());
}
return process.waitFor();
}
Can anyone suggest a good way for me to implement a timeout parameter?
Source: (StackOverflow)
I design a function that may get/set a resource from SD and if not found from sd then take it from Asset and if possible write the asset back to SD
This function may check by method invocation if SD is mounted and accessible...
boolean bSDisAvalaible = Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED);
My designed function may be used from one app(project) to another (with or without android.permission.WRITE_EXTERNAL_STORAGE)
Then I would like to check if the current application has this particular permission without playing with SecurityException.
Does it exist a "nice" way to consult current defined permissions at runtime ?
Source: (StackOverflow)
I am confused on how to modify the web.config appSettings values at runtime. For example, I have this appSettings section:
<appSettings>
<add key="productspagedesc" value="TODO: Edit this default message" />
<add key="servicespagedesc" value="TODO: Edit this default message" />
<add key="contactspagedesc" value="TODO: Edit this default message" />
<add key="aboutpagedesc" value="TODO: Edit this default message" />
<add key="homepagedesc" value="TODO: Edit this default message" />
</appSettings>
Let's say, I want to modify the "homepagedesc" key at runtime. I tried ConfigurationManager and WebConfigurationManager static classes, but the settings are "read-only". How do I modify appSettings values at runtime?
UPDATE:
Ok, so here I am 5 years later. I would like to point out that experience has told me, we should not put any configuration that intentionally is editable at runtime in the web.config file but instead we should put it in a separate XML file as what one of the users commented below. This will not require any of edit of web.config file to restart the App which will result with angry users calling you.
Source: (StackOverflow)
public class PropHolder {
public static Properties prop;
static {
//code for loading properties from file
}
}
// Referencing the class somewhere else:
Properties prop = PropHolder.prop;
class PropHolder
is a class of my own. The class resides in the same JAR file of the main class. So that should not because any JAR is missing from classpath.
When I look in to the JAR file by jar tf myjarfile
, I can see the PropHolder.class
listed there.
Btw: the code is running fine on my local machine. But couldn't work when I deploy it with some script onto a Linux server. So I think it is not the problem of the code.
But for some reason. the deploy process is very hard to track.
What could be the problem?
Source: (StackOverflow)
Is there a way to initialize the EntityManager without a persistence unit defined? Can you give all the required properties to create an entity manager? I need to create the EntityManager from the user's specified values at runtime. Updating the persistence.xml and recompiling is not an option.
Any idea on how to do this is more than welcomed!
Source: (StackOverflow)